-->

在WSS 3.0编程插入一个列表作为web部件的web部件页(Programmatically in

2019-08-20 07:27发布

我试图寻找在网络上以编程方式插入一个列表,在web部件页面中的Web部件,但没有足够的幸运。

任何想法或意见,我可以如何编程插入一个列表,在web部件页面中的WebPart

非常感谢!

Answer 1:

首先添加这些using语句。

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

然后在你的代码

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

如果你想使用自定义视图,尝试玩这个:

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

希望它能帮助,W0ut



Answer 2:

您需要执行两个步骤,将Web部件添加到页面。 首先,你必须创建要显示在页面上的列表中。 因此,您可以使用网站的列表集合(的Add()方法SPListCollection )。

为了证明你有一个添加Web部件页面上的列表ListViewWebPart使用Web部件页SPLimitedWebPartManager页面。



Answer 3:

为了使这更可重复使用的功能接收器的一部分,你可以通过在splist和spview作为方法的一部分:

static public void AddEventsListViewWebPart(PublishingPage page, string webPartZoneId, int zoneIndex, string webPartTitle, PartChromeType webPartChromeType, string listName, string viewname)
{
     using (SPLimitedWebPartManager wpManager = page.ListItem.File.GetLimitedWebPartManager(PersonalizationScope.Shared))
     {
         SPWeb web = page.PublishingWeb.Web;
         SPList myList = web.Lists.TryGetList(listName);
         using (XsltListViewWebPart lvwp = new XsltListViewWebPart())
         {
             lvwp.ListName = myList.ID.ToString("B").ToUpperInvariant();
             lvwp.Title = webPartTitle;
             // Specify the view
             SPView view = myList.Views[viewname];
             lvwp.ViewGuid = view.ID.ToString("B").ToUpperInvariant();
             lvwp.TitleUrl = view.Url;
             lvwp.Toolbar = "None";
             lvwp.ChromeType = webPartChromeType;
             wpManager.AddWebPart(lvwp, webPartZoneId, zoneIndex);
         }
     }
}

然后功能激活时调用它:

AddEventsListViewWebPart(welcomePage, "Right", 1, "Events", PartChromeType.TitleOnly, "Events", "Calendar");


文章来源: Programmatically insert a List as a webpart in a webpart page in WSS 3.0