zoukankan      html  css  js  c++  java
  • sharepoint 2010 使用程序向页面添加webpart

    如果是要使用自动化部署,将不会在需要手动在页面中添加 webpart,而是完全可以用程序来完成这些操作了。

    提供两个方法,用来添加webpart到页面上,其中需要注意的两个地方 是 webpart区域,区域一定是区域的 ID

    zoneIndex 是这个webpart的 摆放顺序,从上到下 1,2,3,4,5,6这样排列。

       1:   #region 添加webpart到页面
       2:          private string AddWebPartToPage(SPWeb web, string pageUrl, string webPartName, string zoneID, int zoneIndex)
       3:          {
       4:              using (SPLimitedWebPartManager webPartManager = web.GetLimitedWebPartManager(
       5:                      pageUrl, PersonalizationScope.Shared))
       6:              {
       7:                  using (System.Web.UI.WebControls.WebParts.WebPart webPart = CreateWebPart(web, webPartName, webPartManager))
       8:                  {
       9:                      SPLimitedWebPartCollection webParts = webPartManager.WebParts;
      10:                      webPartManager.AddWebPart(webPart, zoneID, zoneIndex);
      11:                      return webPart.ID;
      12:                  }
      13:              }
      14:   
      15:          }
      16:   
      17:          private System.Web.UI.WebControls.WebParts.WebPart CreateWebPart(SPWeb web, string webPartName, SPLimitedWebPartManager webPartManager)
      18:          {
      19:              SPQuery qry = new SPQuery();
      20:              qry.Query = String.Format(CultureInfo.CurrentCulture, "<Where><Eq><FieldRef Name=\"FileLeafRef\" /><Value Type=\"File\">{0}</Value></Eq></Where>", webPartName);
      21:   
      22:              SPList webPartGallery = null;
      23:   
      24:              if (null == web.ParentWeb)
      25:              {
      26:                  webPartGallery = web.GetCatalog(
      27:                     SPListTemplateType.WebPartCatalog);
      28:              }
      29:              else
      30:              {
      31:                  webPartGallery = web.Site.RootWeb.GetCatalog(
      32:                     SPListTemplateType.WebPartCatalog);
      33:              }
      34:   
      35:              SPListItemCollection webParts = webPartGallery.GetItems(qry);
      36:   
      37:              XmlReader xmlReader = new XmlTextReader(webParts[0].File.OpenBinaryStream());
      38:              string errorMsg;
      39:              System.Web.UI.WebControls.WebParts.WebPart webPart = webPartManager.ImportWebPart(xmlReader, out errorMsg);
      40:   
      41:              return webPart;
      42:          }
      43:          #endregion

    使用方法

       1:  AddWebPartToPage(oWeb, oList.DefaultViewUrl, “webpartname.webpart”, "Main", 1);
  • 相关阅读:
    bzoj3306: 树(dfs序+倍增+线段树)
    bzoj1969: [Ahoi2005]LANE 航线规划(树链剖分)
    Codeforces 578B. "Or" Game(思维题)
    bzoj3251: 树上三角形(思维题)
    bzoj2006: [NOI2010]超级钢琴(堆+RMQ)
    bzoj4165: 矩阵(堆+hash)
    bzoj3007: 拯救小云公主(二分+并查集)
    Codeforces 582C. Superior Periodic Subarrays(数学+计数)
    Codeforces 585E. Present for Vitalik the Philatelist(容斥)
    Codeforces 585D. Lizard Era: Beginning(meet in the middle)
  • 原文地址:https://www.cnblogs.com/yunliang1028/p/2352798.html
Copyright © 2011-2022 走看看