如何“获取SharePoint列表项目(在内部部署)的项目URL”并将其添加到数据表中

时间:2019-09-09 10:36:01

标签: c# sharepoint listitem

我正在尝试获取SharePoint(本地)列表中项目的列表项目URL。项目URL是否在“查找”中。如果它存在于查找中,那么包含项URL(值)的查找的名称(关键字)是什么。帮助我根据需要将URL添加到数据表中。

我已经检查了获得SP列表项所得到的列表项集合。有什么方法可以获取列表项的URL。

 System.Data.DataTable DT = new DataTable();
                SP.List oList = SP_List.Web.Lists.GetByTitle(ListName);
                CamlQuery cQuery = new CamlQuery();
                cQuery.ViewXml = "@<View><RowLimit>10</RowLimit></View>";
                ListItemCollection ListCollection = oList.GetItems(cQuery);
                SP_List.Load(ListCollection);
                SP_List.ExecuteQuery();

                for (int i = 0; i < ColumnName.Length; i++)
                    DT.Columns.Add(ColumnName[i], System.Type.GetType("System.String"));

                for (int i = 0; i < LookUp.Length; i++)
                    DT.Columns.Add(LookUp[i], System.Type.GetType("System.String"));

                foreach (ListItem value in ListCollection)
                {
                    DataRow dr = DT.NewRow();
                    for (int i = 0; i < ColumnName.Length; i++)
                        dr[ColumnName[i]] = value[ColumnName[i]].ToString();
                    for (int i = 0; i < LookUp.Length; i++)
                        dr[LookUp[i]] = (((Microsoft.SharePoint.Client.FieldUserValue)value[LookUp[i]])?.LookupValue).ToString();
                        DT.Rows.Add(dr);

这是当前代码,我必须获取所需的值。我还试图在此数据表中添加“ Item URl”,帮助我获取并将值添加到数据表中。

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您想要的只是列表项的网址?您可以通过访问ServerRelativeUrl SP.ListItem.File.ServerRelativeUrl

ctx.load(listItem.File)
ctx.executequery()
console.log(listITem.File.ServerRelativeUrl)

(对不起,我是用jsom而不是csom编写的,但是代码几乎一样)

对于您要执行的操作,您的代码看起来过于复杂。我可能会考虑简化它。