我试图寻找在网络上以编程方式插入一个列表,在web部件页面中的Web部件,但没有足够的幸运。
任何想法或意见,我可以如何编程插入一个列表,在web部件页面中的WebPart
非常感谢!
我试图寻找在网络上以编程方式插入一个列表,在web部件页面中的Web部件,但没有足够的幸运。
任何想法或意见,我可以如何编程插入一个列表,在web部件页面中的WebPart
非常感谢!
首先添加这些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
您需要执行两个步骤,将Web部件添加到页面。 首先,你必须创建要显示在页面上的列表中。 因此,您可以使用网站的列表集合(的Add()方法SPListCollection )。
为了证明你有一个添加Web部件页面上的列表ListViewWebPart使用Web部件页SPLimitedWebPartManager页面。
为了使这更可重复使用的功能接收器的一部分,你可以通过在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");