2012-10-15 38 views
0

我試圖從下面的人選擇控件選擇的用戶ID:獲取從2010年的SharePoint解決SPUser標識PeoplePicker

function GetUserIdsFromPP() { 
    var xml = _picker.find('div#divEntityData'); 
    var visiblefor = new Array(); 

    xml.each(function (i, row) { 
     var data = $(this).children().first('div').attr('data'); 
     var xmlDoc; 

     if (window.DOMParser) { 
      parser = new DOMParser(); 
      xmlDoc = parser.parseFromString(data, "text/xml"); 
     } 
     else // Internet Explorer 
     { 
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async = false; 
      xmlDoc.loadXML(data); 
     } 
     var uid = xmlDoc.getElementsByTagName('Value')[0].firstChild.nodeValue; 
     visiblefor.push(uid); 
    }); 

    return visiblefor; 
} 

的問題是,有時XML不包含<Key>SPUserID</Key><Value>1</Value>,我得到FQUN(用戶登錄與域名)。

解決PeoplePicker控件中所選SPUserIds的更好方法是什麼?

回答

0

這是如何解決在客戶端從人員選取控制電子郵件

function GetEmailsFromPicker() { 
    var xml = _picker.find('div#divEntityData'); 
    var result = new Array(); 

    xml.each(function (i, row) { 
     var data = $(this).children().first('div').attr('data'); 
     var xmlDoc; 

     if (window.DOMParser) { 
      parser = new DOMParser(); 
      xmlDoc = parser.parseFromString(data, "text/xml"); 
     } 
     else // Internet Explorer 
     { 
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async = false; 
      xmlDoc.loadXML(data); 
     } 

     var emailIndex = -1; 

     for (var i = 0; i < xmlDoc.childNodes[0].childNodes.length; i++) { 
      var element = xmlDoc.childNodes[0].childNodes[i]; 
      var key = element.childNodes[0].childNodes[0].nodeValue; 
      if (key == 'Email') { 
       var uid = xmlDoc.childNodes[0].childNodes[i].childNodes[1].childNodes[0].nodeValue; 
       result.push({ EMail: uid }); 
       break; 
      } 
     } 
    }); 

    return result; 
} 
相關問題