Sharepoint 2013 GetItems父ID

时间:2016-04-01 00:04:07

标签: c# sharepoint sharepoint-2010 sharepoint-2013

我是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;
        }

1 个答案:

答案 0 :(得分:0)

这不是解决此问题的最佳方法,但它确实有效。我设法使用父文件夹属性ServerRelativeUrl,可以为列表中的每个项检索该属性,如下所述:

Is there a way to get Folder object from ListItem one?

然后,我使用此类从路径(ServerRelativeURL)构建父/子层次结构:

How to create hierarchical structure with list of path?