将新SPView添加到SPList

时间:2012-05-21 15:12:24

标签: sharepoint-2010

我需要创建视图并以编程方式将它们添加到列表中。在SPList方法中,有一个类型为SPViewCollection的Views属性。
这有一个添加方法。但是此方法不接受完整的XML架构。它分为许多参数(您设置查询,连接等)。我需要一种方法,我可以传递完整的XML。

我想首先使用这个Add方法创建一个'Dummy'视图,然后再回看View,最后使用SetViewXml。

这是一种肮脏的方法 - 也许有一些更好,更简单的东西,我想念。谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个。我不相信你需要XML。您只需要使用字符串集合添加列。

  using (SPWeb web = properties.Feature.Parent as SPWeb)
  {

     System.Diagnostics.Debug.WriteLine("Creating the list");

     //web.AllowUnsafeUpdates = true; //use this in an application page no need in a dll

     web.Lists.Add("Customers", "Store informations about my Company Customers", SPListTemplateType.GenericList);

     web.Update();



     System.Diagnostics.Debug.WriteLine("Creating the Fields");

     SPList myNewList = web.Lists["Customers"];

     myNewList.Fields.Add("First Name", SPFieldType.Text, false);

     myNewList.Fields.Add("Last Name", SPFieldType.Text, false);

     myNewList.Fields.Add("Adress", SPFieldType.Text, false);

     myNewList.Fields.Add("City", SPFieldType.Text, false);

     myNewList.Fields.Add("Latest Purchase Date", SPFieldType.DateTime, false);

     myNewList.Fields.Add("Sales Comments", SPFieldType.Note, false);

     myNewList.Update();



     System.Diagnostics.Debug.WriteLine("Creating the view");

     System.Collections.Specialized.StringCollection strColl = new System.Collections.Specialized.StringCollection();

     strColl.Add("Title");

     strColl.Add("First Name");

     strColl.Add("Last Name");

     strColl.Add("Adress");

     strColl.Add("City");

     strColl.Add("Latest Purchase Date");

     strColl.Add("Sales Comments");

     myNewList.Views.Add("Summary", strColl, @"", 100, true, true, Microsoft.SharePoint.SPViewCollection.SPViewType.Html, false);

     myNewList.Update();

 }