我尝试在网上搜索以编程方式在网页部分页面中插入一个列表作为webpart但是不够幸运。
我有什么想法或想法以编程方式将列表作为webpart插入网页部分
非常感谢!
答案 0 :(得分:7)
首先使用语句添加这些。
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
答案 1 :(得分:1)
您需要执行两个步骤才能将网页部件添加到网页中。首先,您必须创建要在页面上显示的列表。因此,您可以使用网站列表集(SPListCollection)的Add()方法。
要在网页部件页面上显示列表,您必须使用页面的ListViewWebPart将SPLimitedWebPartManager添加到网页部件页面。
答案 2 :(得分:1)
为了使其更易于作为功能接收器的一部分使用,您可以将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");