您好我正在尝试获取仅由已登录用户创建的所有文档库。使用以下代码,我还获得了不是从用户创建的库。谢谢。
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 />";
}
}
答案 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);
}
}
}
}
}