Search code examples
sharepointmossweb-parts

Programmatically insert a List as a webpart in a webpart page in WSS 3.0


I tried searching on the net to programmatically insert a List as a webpart in a webpart page but was not lucky enough.

Any thoughts or ideas how i could Programmatically insert a List as a webpart in a webpart page

Many Thanks!


Solution

  • First add these using statements.

    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebPartPages;
    

    Then in your code

    // First get the list
    SPSite site = new SPSite("http://myserver");
    SPWeb web = site.OpenWeb();
    SPList list = web.Lists["MyCustomlist"];
    
    // Create a webpart
    ListViewWebPart wp = new ListViewWebPart();
    wp.ZoneID = "Top";   // Replace this ith the correct zone on your page.
    wp.ListName = list.ID.ToString("B").ToUpper();
    wp.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper();
    
    // Get the web part collection
    SPWebPartCollection coll = 
        web.GetWebPartCollection("default.aspx",    // replace this with the correct page.
        Storage.Shared);
    
    // Add the web part
    coll.Add(wp); 
    

    If you want to use a custom view, try playing with this:

    SPView view = list.GetUncustomizedViewByBaseViewId(0);
    wp.ListViewXml = view.HtmlSchemaXml;
    

    Hope it helps, W0ut