SharePoint Online 开发篇:SharePoi

发布时间:2020-02-24 23:51:11 作者:bxapollo
来源:网络 阅读:231

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();<br>
    camlQuery.set_viewXml('<View><Query><OrderBy><FieldRef Name=\'ID\' /></OrderBy></Query></View>');    
    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());

推荐阅读:
  1. SharePoint Online 开发:定义CSS元素
  2. SharePoint Online 开发:修改表格样式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jsom获取userid

上一篇:python学习之数据库mariadb操作

下一篇:常见的研发文档外发加密方法有哪些?企业数据防泄漏常用方案,江

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》