[英]sharepoint add webpart to page using C#
I have a problem with adding sharepoint listviewwebparts to a webpart page.我在将 sharepoint listviewwebparts 添加到 webpart 页面时遇到问题。 i want to do it programmatically with C#.我想用 C# 以编程方式做到这一点。 i have made the page but adding the listviewwebpart isnt working.我已经制作了页面,但添加 listviewwebpart 不起作用。 code is below.代码如下。
private void addListViewWebPart(SPFeatureReceiverProperties properties, String _listName)
{
using (SPWeb _web = properties.Feature.Parent as SPWeb)
{
SPList _list = _web.Lists.TryGetList(_listName);
if (_list != null)
{
ListViewWebPart _webPart = new ListViewWebPart();
_webPart.ZoneID = "Left";
_webPart.ListName = _list.ID.ToString("B").ToUpper();
_webPart.ViewGuid = _list.Views[0].ID.ToString("B").ToUpper();
SPWebPartCollection _webPartColl = _web.GetWebPartCollection("Default.aspx", Storage.Shared);
System.Guid _guid = _webPartColl.Add(_webPart);
}
}
}
anyone knows why it isnt working?有谁知道为什么它不起作用?
thanks in advance.提前致谢。
You will need to use the SPLimitedWebPartManager
and its AddWebPart
Method.您将需要使用SPLimitedWebPartManager
及其AddWebPart
方法。
There is an example in this blog.: Add Web Part programmatically using SPLimitedWebPartManager .此博客中有一个示例。: 使用 SPLimitedWebPartManager 以编程方式添加 Web 部件。
The following web site was very helpful in demonstrating how to add a web part to a page.以下网站对演示如何将 Web 部件添加到页面非常有帮助。 It includes samples of how to add both out of the box web parts and custom web parts.它包括如何添加开箱即用的 Web 部件和自定义 Web 部件的示例。 Source: https://www.sharepointdiary.com/2012/08/how-to-add-web-parts-to-the-page-programmatically.html来源: https : //www.sharepointdiary.com/2012/08/how-to-add-web-parts-to-the-page-programmatically.html
Sample of how to add a ListViewWebpart to a page:如何将 ListViewWebpart 添加到页面的示例:
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls.WebParts;
namespace YourProjectName.Helpers
{
public class WebPartHelper
{
//Add ListView Web Part to Page
//Source Ref: https://www.sharepointdiary.com/2012/08/how-to-add-web-parts-to-the-page-programmatically.html
public static string AddListViewWebPartToPage(SPWeb web,
string pageUrl, //full or relative
string ListName,
string WPTitle,
string wpZone, // eg. "Left", "Middle", "Right"
PartChromeType chromeType=PartChromeType.TitleAndBorder)
{
try
{
//Create the SPLimitedWebPart Manager to Add web parts
SPLimitedWebPartManager WebPartMgr = web.GetLimitedWebPartManager(pageUrl, PersonalizationScope.Shared);
//Check for existing web part with same title first
//Added this to ensure that I don't add the same web part multiple times, especially if this is used in a feature activate function.
foreach (Microsoft.SharePoint.WebPartPages.WebPart wp in WebPartMgr.WebParts)
{
if (wp.Title == WPTitle)
{
return "WebPart with title of [" + WPTitle + "] already exists.";
}
}
//Get the object of the list of which we are creatin the list viewer webpart
SPList list = web.Lists[ListName];
ListViewWebPart oListViewWP = new ListViewWebPart();
//Set the properties of the webpart
oListViewWP.ChromeType = chromeType;
oListViewWP.Title = WPTitle;
oListViewWP.ListName = list.ID.ToString("B").ToUpper();
oListViewWP.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper();
//Define the zone in which webparts need to be added
WebPartMgr.AddWebPart(oListViewWP, wpZone, 3);
}
catch (Exception ex)
{
return ex.ToString();
}
return "";
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.