首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Sharepoint 2010 PeoplePicker获取已解析的SPUser ID

从Sharepoint 2010 PeoplePicker获取已解析的SPUser ID
EN

Stack Overflow用户
提问于 2012-10-15 22:40:40
回答 2查看 1.6K关注 0票数 1

我尝试从people picker控件中获取选定的用户I,如下所示:

代码语言:javascript
复制
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的更好方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2012-10-19 19:47:07

这就是如何从客户端的people picker控件解析电子邮件

代码语言:javascript
复制
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;
}
票数 1
EN

Stack Overflow用户

发布于 2021-06-22 23:32:53

使用上面的答案,但是...

将其替换为适当的Jquery或Javascript元素名称。

代码语言:javascript
复制
var xml = _picker.find('div#divEntityData');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12898011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档