如果是要使用自动化部署,将不会在需要手动在页面中添加 webpart,而是完全可以用程序来完成这些操作了,
Sharepoint 2010使用程序向页面添加webpart
。提供两个方法,用来添加webpart到页面上,其中需要注意的两个地方 是 webpart区域,区域一定是区域的 ID
zoneIndex 是这个webpart的 摆放顺序,从上到下 1,2,3,4,5,6这样排列。
1: #region 添加webpart到页面<br /> 2:private string AddWebPartToPage(SPWeb web, string pageUrl, string webPartName, string zoneID, int zoneIndex)<br /> 3:{<br /> 4:using (SPLimitedWebPartManager webPartManager = web.GetLimitedWebPartManager(<br /> 5:pageUrl, PersonalizationScope.Shared))<br /> 6:{<br /> 7:using (System.Web.UI.WebControls.WebParts.WebPart webPart = CreateWebPart(web, webPartName, webPartManager))<br /> 8:{<br /> 9:SPLimitedWebPartCollection webParts = webPartManager.WebParts;<br />10:webPartManager.AddWebPart(webPart, zoneID, zoneIndex);<br />11:return webPart.ID;<br />12:}<br />13:}<br />14:<br />15:}<br />16:<br />17:private System.Web.UI.WebControls.WebParts.WebPart CreateWebPart(SPWeb web, string webPartName, SPLimitedWebPartManager webPartManager)<br />18:{<br />19:SPQuery qry = new SPQuery();<br />20:qry.Query = String.Format(CultureInfo.CurrentCulture, "<Where><Eq><FieldRef Name=\"FileLeafRef\" /><Value Type=\"File\">{0}</Value></Eq></Where>", webPartName);<br />21:<br />22:SPList webPartGallery = null;<br />23:<br />24:if (null == web.ParentWeb)<br />25:{<br />26:webPartGallery = web.GetCatalog(<br />27: SPListTemplateType.WebPartCatalog);<br />28:}<br />29:else<br />30:{<br />31:webPartGallery = web.Site.RootWeb.GetCatalog(<br />32: SPListTemplateType.WebPartCatalog);<br />33:}<br />34:<br />35:SPListItemCollection webParts = webPartGallery.GetItems(qry);<br />36:<br />37:XmlReader xmlReader = new XmlTextReader(webParts[0].File.OpenBinaryStream());<br />38:string errorMsg;<br />39:System.Web.UI.WebControls.WebParts.WebPart webPart = webPartManager.importWebPart(xmlReader, out errorMsg);<br />40:<br />41:return webPart;<br />42:}<br />43:#endregion
使用方法
1: AddWebPartToPage(oWeb, oList.DefaultViewUrl, “webpartname.webpart”, "Main", 1);