2012-05-21 17 views
0

我需要創建視圖並將它們以編程方式添加到列表中。 SPList方法中有一個SPViewCollection類型的Views屬性。
這有一個添加方法。但是這種方法不接受完整的XML模式。它被分成許多參數(您設置查詢,連接等)。我需要一種方法,讓我可以傳遞完整的XML。

我正在考慮先使用這個Add方法創建一個'Dummy'視圖,然後再讀取View,最後使用SetViewXml。

但這是一種骯髒的方法 - 也許有更好更簡單的東西,我失蹤了。謝謝!添加一個新的SPView到SPList

回答

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(); 

} 
相關問題