SharePoint 2013获取用户在JavaScript中创建的文档库

时间:2016-08-15 14:26:58

标签: javascript sharepoint sharepoint-jsom

您好我正在尝试获取仅由已登录用户创建的所有文档库。使用以下代码,我还获得了不是从用户创建的库。谢谢。

function GetAllLibraries() {
    var listCollection = lists.getEnumerator();
    while (listCollection.moveNext()) {
        var listName = listCollection.get_current().get_title('Title');
        document.getElementById('leftDiv').innerHTML += "<b>" + listName + "<b/>" + "<br />";
    }
}

1 个答案:

答案 0 :(得分:0)

如果您想知道谁创建了列表或库,您需要获取属性SPList.Author。据我所知,你无法通过JSOM获得它。

我的建议是在服务器端使用逻辑开发自己的http hanlder并通过ajax调用它。例如,您将参数传递到处理程序,如web url(_spPageContextInfo.webAbsoluteUrl),当前用户登录或id(_spPageContextInfo.userId),并在web上的处理程序迭代列表中,比较当前用户和列表创建者。最后,返回所需的列表信息。

或者只是开发Web部件并执行相同操作:迭代列表并将其与SPContext.Current.Web.CurrentUser

进行比较

更新:

c#代码示例。您可以将它放在Web部件或事件处理程序中。在此代码中,我们迭代SPWeb上的所有列表并保存当前用户创建的列表标题。

private void GetLists()
{
    using (SPSite site = new SPSite("{site_url}"))
    {
        using (SPWeb web = site.OpenWeb())
        {
            SPListCollection listCol = web.Lists;
            List<string> currentUserLists = new List<string>();
            foreach(SPList list in listCol)
            {
                if (list.Author.ID == SPContext.Current.Web.CurrentUser.ID)
                {
                    currentUserLists.Add(list.Title);
                }
            }
        }
    }
}