2010-10-15 40 views
1

正如标题所示:在SharePoint 2010中,我需要以编程方式创建一个视图,让我可以过滤列表上的项目(人员列表)。在这个人名单中我有一个查询字段,指的是另一个列表(项目):我需要只显示在确定的项目上工作的人(作为字符串传递)SP2010:如何创建一个过滤查找字段的列表视图

我已经创建了一个使用此代码的示例视图:

class Program 
    { 
     static void Main(string[] args) 
     { 
      using (SPSite site = new SPSite("http://dev_seventeen:999")) 
      { 
       using (SPWeb web = site.OpenWeb()) 
       { 
        SPList books = web.Lists["Books"]; 
        StringCollection fields = new StringCollection(); 
        fields.Add("Title"); 
        fields.Add("Publisher"); 
        fields.Add("Autore"); 
        var query = new XElement("Where", 
            new XElement("Eq", 
             new XElement("FieldRef", new XAttribute("Name", "Publisher")), 
             new XElement("Value", new XAttribute("Type", "Choice"), "Alpha") 
             ) 
            ).ToString(SaveOptions.DisableFormatting); 

        SPView view = books.Views.Add("TestView", 
         fields, 
         query, 
         100, 
         false, 
         false, 
         Microsoft.SharePoint.SPViewCollection.SPViewType.Html, 
         false 
         ); 
        Console.WriteLine(query); 
        Console.ReadLine(); 
       } 
      } 
     } 
    } 

它过滤了一个名为名为“发布”选择类型字段“书”,寻找由“阿尔法”出版的所有书籍

我需要知道名单是如何在过滤器查询字段而不是chioce字段,因为如果我只是在查询中将“查询”替换为“选择”,则它不起作用=(

谢谢

回答

0

您可以使用LookupID作为类型吗?这将确保你只有一场比赛。检查查询字段的内容页面,CAML & LINQ:

+0

一定有什么错......我曾经试了一次,显然没有修改任何东西,它的工作原理(使用常规的“查找”作为值类型)。最奇怪的是,如果我尝试使用“文本”值类型进行过滤,将视图应用于列表时出现此错误:“一个或多个字段类型未正确安装。转到列表设置页面以删除这些田“。 = O – Maik 2010-10-15 10:31:36

+0

关于字段类型错误:您是否在使用列的内部名称?看到这个常见问题:http://www.sharepoint-tips.com/2007/04/one-of-more-field-types-are-not.html – 2010-10-16 09:16:27

+0

感谢它现在的作品! – Maik 2010-10-18 07:06:13

相关问题