SharePoint Online 开发篇:SharePoi
admin
2023-01-25 08:21:06
0

Blog链接:https://blog.51cto.com/13969817

我们使用SharePoint Hosted App获取用户ID时,你将发现SharePoint中的JavaScript Object Model(JSOM)比REST API更容易使用。

REST Protocol的第一个限制是它只返回100个条目,我还没有找到一个方法来增加这个,而使用JSOM可以获取所有用户的列表,并按照ID 排序。

比如我们需要list来保存User ID,然后分别使用REST API和JSOM获取用户列表的代码。

使用REST API来获得用户的列表,并按ID排序,Sample Code如下:

function getUsers() {
    var pUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/site/rootweb/lists/getByTitle('User Information List')/items?$orderby=Id";
    //var pUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/site/rootweb/lists/getByTitle('User Information List')/items?$orderby=Id&$select=Id,Title,Name,EMail";
    $.ajax(pUrl, { method: "GET", headers: { "accept": "application/json;odata=verbose" } }).done(storeUsers).fail(getUserError);
}
 
function storeUsers(data) {
    var responseParse = JSON.parse(data.body);
    user_list = responseParse.d.results;
}
 
function getUserError(jqXHR, textStatus) {
    alert(textStatus);
}

但这只会返回100个项目,而使用JSOM可以获取按照User ID排序所有User 列表,sample Code如下:

function getAllUsers() {
    var userInfoList = context.get_site().get_rootWeb().get_siteUserInfoList();
 
    var camlQuery = new SP.CamlQuery();

    camlQuery.set_viewXml('');    
    userListItemCollection = userInfoList.getItems(camlQuery);
 
    context.load(userListItemCollection);
    //context.load(userListItemCollection, 'Include(Title,ID,Name,EMail)');
 
    context.executeQueryAsync(onGetAllUsersSuccess, onGetAllUsersFail);
}
 
function onGetAllUsersSuccess() {
    var userArr = [];
    var arrNames = [];
    var listEnumerator = userListItemCollection.getEnumerator();
 
    while (listEnumerator.moveNext()) {
        var oList = listEnumerator.get_current();
 
        //avoid duplicates
        var index = $.inArray(oList.get_item('Title'), arrNames);
        if (index == -1) {
            userArr.push({
                Id: oList.get_item('ID'),
                Title: oList.get_item('Title'),
                Name: oList.get_item('Name'),
                EMail: oList.get_item('EMail')
            });
            arrNames.push(oList.get_item('Title'));
        }
    }
 
    user_list = userArr;
}
 
function onGetAllUsersFail(sender, args) {
    alert("Unable to load user information: " + args.get_message());

相关内容

热门资讯

今日重磅消息“天府红桃3.辅助... 有 亲,根据资深记者爆料天府红桃3是可以开挂的,确实有挂(咨询软件无需打...
最新引进“非凡卡五星.到底是不... 最新引进“非凡卡五星.到底是不是挂?”原来真的有挂您好,非凡卡五星这个游戏其实有挂的,确实是有挂的,...
终于了解“决战卡五星.有没有挂... 终于了解“决战卡五星.有没有挂?”原来真的有挂您好,决战卡五星这个游戏其实有挂的,确实是有挂的,需要...
【今日要闻】“官方正版炸金花.... 家人们!今天小编来为大家解答官方正版炸金花透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪...
今日重磅消息“微信麻将.有没有... 网上科普关于“微信麻将有没有挂”话题很是火热,小编也是针对微信麻将作*弊开挂的方法以及开挂对应的知识...
【第一资讯】“极酷牛牛.辅助开... 网上科普关于“极酷牛牛有没有挂”话题很是火热,小编也是针对极酷牛牛作*弊开挂的方法以及开挂对应的知识...
最新引进“神皇大厅.可以开挂吗... 最新引进“神皇大厅.可以开挂吗?”其实是有挂您好,神皇大厅这个游戏其实有挂的,确实是有挂的,需要了解...
终于了解“九九牌游十三水.有没... 您好:九九牌游十三水这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这...
【第一消息】“大玩家福建麻将.... 您好:大玩家福建麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这...
玩家分享攻略“,728土豪版.... 玩家分享攻略“,728土豪版.是不是有挂?”原来真的有挂您好,,728土豪版这个游戏其实有挂的,确实...