我是sharepoint的新手,我正在尝试从sharepoint检索的项目列表中构建父母及其各自子女的树视图列表。在下面的代码中,我使用" ID" fieldvalue用于标识项目和" parentleafname" lookupvalue尝试确定此项是否具有父项。看起来虽然是" ID"来自" parentleafname"的查找值是相同的。如何从返回的列表中的项目中获取父ID?
private ListItemCollection GetList(string listName)
{
var web = _sharePointContext.Web;
Microsoft.SharePoint.Client.List list = web.Lists.GetByTitle(listName);
var query = new CamlQuery();
query.ViewXml = "<View Scope=\"RecursiveAll\"> " +
"< Query >" +
"< OrderBy >" +
"< FieldRef Name = 'ID' />" +
"</ OrderBy >" +
"</ Query >" +
"</View>";
query.FolderServerRelativeUrl = "/lists/" + listName;
ListItemCollection folders = list.GetItems(query);
_sharePointContext.Load(list);
_sharePointContext.Load(list.Fields);
_sharePointContext.Load(folders, fs => fs.Include(
fi => fi["Title"],
fi => fi["DisplayName"],
fi => fi["FileLeafRef"],
fi => fi["ParentLeafName"],
fi => fi["ID"],
fi => fi["ContentTypeId"]
));
_sharePointContext.ExecuteQuery();
return folders;
}
答案 0 :(得分:0)
这不是解决此问题的最佳方法,但它确实有效。我设法使用父文件夹属性ServerRelativeUrl,可以为列表中的每个项检索该属性,如下所述:
Is there a way to get Folder object from ListItem one?
然后,我使用此类从路径(ServerRelativeURL)构建父/子层次结构: