我需要创建视图并以编程方式将它们添加到列表中。在 SPList 方法中有一个 SPViewCollection 类型的 Views 属性。
这有一个添加方法。但此方法不接受完整的 XML 模式。它分为许多参数(您在其中设置查询、连接等)。我需要一种可以传递完整 XML 的方法。
我正在考虑首先使用此 Add 方法创建一个“虚拟”视图,然后读回视图,最后使用 SetViewXml。
但这是一种有点肮脏的方法——也许我缺少更好更简单的方法。谢谢!
问问题
920 次
1 回答
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();
}
于 2012-05-22T07:12:47.023 回答