Sharepoint 2013 GetItems parent id

Sharepoint 2013 GetItems parent id

我是 sharepoint 的新手,我正在尝试从从 sharepoint 检索的项目列表中构建 parent 及其各自的 children 的树视图列表。在下面的代码中,我使用 "ID" 字段值来标识项目,并使用 "parentleafname" 查找值来尝试确定该项目是否具有 parent。看起来 "ID" 和 "parentleafname" 中的 lookupvalue 是相同的。如何从返回的列表中的项目中获取 parent 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;
        }

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

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

然后我使用此 class 从路径 (ServerRelativeURL) 构建了一个 parent/child 层次结构:

How to create hierarchical structure with list of path?