आप SharePoint के संस्करण निर्दिष्ट नहीं किया है, लेकिन निम्नलिखित विवरण SharePoint 2007 पर लागू होता है और 2010
लोगों पिकर के मूल्य में इस बात की पुष्टि नहीं कर रहा था 'की जाँच करें नाम' आइकन या 'पर क्लिक करके सेट किया जा सकता 'आइकन ब्राउज़ करें।
यदि आप 'चेक नाम' आइकन पर क्लिक करते हैं जो एक एंकर टैग है, तो ऑनक्लिक ईवेंट 'WebForm_DoCallback' को आमंत्रित करता है जो असीमित रूप से लोगों को पिकर में दर्ज किए गए नाम को सत्यापित करने के लिए SharePoint सर्वर पर HTTP अनुरोध करता है।
function WebForm_DoCallback(eventTarget,
eventArgument,
eventCallback,
context,
errorCallback,
useAsync){
...
}
WebForm_DoCallbacks तर्क यह है कि है कि आप सबसे में दिलचस्पी होगी कि 'eventTarget', लोगों पिकर पाठ क्षेत्र:
बाद WebForm_DoCallback हस्ताक्षर है। आपको 'eventCallback' में भी रुचि होगी क्योंकि यह async HTTP अनुरोध रिटर्न के बाद कॉलबैक विधि है। इस मामले में, यह कोर जेएस में परिभाषित 'EntityEditorHandleCheckNameResult (परिणाम, सीटीएक्स)' है।
बाद EntityEditorHandleCheckNameResult समारोह की परिभाषा
function EntityEditorHandleCheckNameResult(result, ctx)
{
EntityEditorClearWaitCursor(ctx);
EntityEditorCallback(result, ctx);
}
सूचना है कि यह प्रतिनिधियों घटना EntityEditorCallback विधि से निपटने है। यह भी मामला है यदि आप 'ब्राउज़ करें' आइकन पर क्लिक करते हैं जो उपयोगकर्ता को खोजने और चुनने के लिए आपके लिए एक संवाद खोलता है। 'ब्राउज' आइकन स्पष्ट रूप से एक अलग कॉल स्टैक का लाभ उठाता है लेकिन चूंकि वे दोनों EntityEditorCallback पर भरोसा करते हैं, इसलिए मैं इस विधि पर ध्यान केंद्रित करूंगा क्योंकि जब आप 'नाम जांचें' या 'ब्राउज़ करें' पर क्लिक करते हैं तो समाधान काम करता है।
के बाद EntityEditorCallback शुरू हो जाती है अपने कोड निष्पादित करने के लिए, आप लाभ उठा सकते हैं निम्नलिखित कोड:
var invokeAfterEntityEditorCallback = function(func) {
var old__EntityEditorCallback = EntityEditorCallback;
if (typeof EntityEditorCallback != 'function') {
EntityEditorCallback = func;
} else {
EntityEditorCallback = function(result, ctx) {
old__EntityEditorCallback(result, ctx);
func(result, ctx);
}
}
};
के बाद एक कस्टम लोग पिकर ईवेंट हैंडलर जो परिणाम और लोगों पिकर पाठ क्षेत्र की आईडी अलर्ट है:
function onPeoplePickerFieldSet(result, ctx){
alert(result);
alert(ctx);
}
तर्क है कि लोग पिकर नाम चेक या ब्राउज़ संवाद से चुने जाने के बाद ऑनपोलपिकरफ़िल्ड्ससेट विधि को लागू करने की अनुमति देगा। साथ ही, यदि आप jQuery का उपयोग कर रहे हैं, तो इस कथन को दस्तावेज़.ready ईवेंट हैंडलर में शामिल किया जा सकता है।
invokeAfterEntityEditorCallback(onPeoplePickerFieldSet);
onPeoplePickerFieldSet विधि के 'परिणाम' तर्क सफल सत्यापन के साथ ही डोमेन quailified उपयोगकर्ता नाम का संकेत एक XML परिणाम है। निम्न XML एक उदाहरण से क्लिक करें 'की जाँच करें नाम' आइकन जिसके परिणामस्वरूप है:
<Entities Append="False" Error="" Separator=";" MaxHeight="3">
<Entity Key="HOLLOWAY\csteel" DisplayText="Craig Steel" IsResolved="True" Description="HOLLOWAY\csteel">
<ExtraData>
<ArrayOfDictionaryEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DictionaryEntry>
<Key xsi:type="xsd:string">DisplayName</Key>
<Value xsi:type="xsd:string">Craig Steel</Value>
</DictionaryEntry>
<DictionaryEntry>
<Key xsi:type="xsd:string">Email</Key>
<Value xsi:type="xsd:string">[email protected]</Value>
</DictionaryEntry>
<DictionaryEntry>
<Key xsi:type="xsd:string">SPUserID</Key>
<Value xsi:type="xsd:string">16</Value>
</DictionaryEntry>
<DictionaryEntry>
<Key xsi:type="xsd:string">PrincipalType</Key>
<Value xsi:type="xsd:string">User</Value>
</DictionaryEntry>
</ArrayOfDictionaryEntry>
</ExtraData>
<MultipleMatches />
</Entity>
</Entities>
'ctx' तर्क लोगों पिकर पाठ क्षेत्र की आईडी है और एक jQuery चयनकर्ता बयान में इस्तेमाल किया जा सकता।
यही है!
बहुत उपयोगी प्रश्न, thnx साहब :) –