-1

我在 Windows 应用程序中有网格视图。现在我想将共享文档字段值显示到网格视图中。任何人都可以有解决方案吗????

        IEnumerable<Sp.ListItem> list;
        Sp.ClientContext spcontext = new ClientContext("http://Sharepointsite");
        Sp.Web spsite = spcontext.Web;
        Sp.ListCollection lcollection = spsite.Lists;
        var productlist = spcontext.Web.Lists.GetByTitle("Shared Documents/Photo");
        Sp.CamlQuery cm = new CamlQuery();
        IQueryable<Sp.ListItem> mylist = productlist.GetItems(cm);
        list = spcontext.LoadQuery(mylist);
        spcontext.ExecuteQuery();
        var qry = (from prd in list
                   select new
                   {

                       Name = prd.FieldValues.Values.ElementAt(1).ToString(),
                       Custom = prd.FieldValues.Values.ElementAt(2).ToString(),

                   }).ToList();

        dataGridView1.DataSource = qry;

错误:Sharepointsite 中 URL 的站点不存在列表“共享文档/照片”

4

2 回答 2

0

假设这Photo是您文档库中的一个文件夹,您不能将其视为列表标题。

如果您将空的 Caml 查询更改为

var productlist = spcontext.Web.Lists.GetByTitle("Shared Documents");

var folderName = "Photo";


Sp.CamlQuery cm = new Sp.CamlQuery();
cm.ViewXml = "<View Scope=\"RecursiveAll\"> " +
"<Query>" +
   "<Where>" +
   "<And>" +
     "<Eq>" +
       "<FieldRef Name=\"FSObjType\" />" +
       "<Value Type=\"Integer\">1</Value>" +
     "</Eq>" +
     "<Eq>" +
       "<FieldRef Name=\"Title\"/>" +
       "<Value Type=\"Text\">" + folderName + "</Value>" +
     "</Eq>" +
   "</And>" +
   "</Where>" +
 "</Query>" +
 "</View>";

它将获取文档库中具有该名称的所有文件夹。

现在,如果您想要 FieldValue 的列表,您可以将 LinQ 查询更改为如下内容:

 var qry = (from prd in list.ElementAt(0).FieldValues
           select new 
           {
               Key = prd.Key,
               Value = prd.Value
           }).ToList();

现在您有了一个包含所有字段名称及其值的集合。可以对哪个进行排序/过滤。

编辑:

如果您只想选择集合的某些字段,一个机会是向您的 linq 查询添加 where 子句:

var qry = (from prd in list.ElementAt(0).FieldValues
           where prd.Key == "Title"
           select new 
           {
               Key = prd.Key,
               Value = prd.Value
           }).ToList();
于 2013-07-02T12:12:29.163 回答
-1

错误本身表明此行存在问题 var productlist = spcontext.Web.Lists.GetByTitle("Shared Documents/Photo");

于 2013-07-01T11:55:32.700 回答