【问题标题】:Retrieve a list of web parts on a page检索页面上的 Web 部件列表
【发布时间】:2010-12-04 01:40:42
【问题描述】:

我正在尝试获取在 sharepoint 3.0 中的网页上部署的 webpart 列表。有没有办法从共享点内容数据库中检索它,或者我可以通过编程方式来检索它吗?

【问题讨论】:

    标签: sharepoint wss-3.0 web-parts


    【解决方案1】:

    您可以使用 SPWebPartManager 遍历页面中的 Web 部件列表。

    this MSDN example

    编辑: 这可能是一个更好的例子:

    private static void GetWebParts()
    {
      using (SPSite site = new SPSite("<YOUR SITE URL>"))
      {
        using (SPWeb web = site.OpenWeb())
        {
          SPFile file = web.GetFile("default.aspx"); // or what ever page you are interested in
          using (SPLimitedWebPartManager wpm = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared))
          {
            foreach (WebPart wp in wpm.WebParts)
            {
              Console.WriteLine("Web part: {0}", wp.Title);
            }
          }
        }
      }
    }
    

    【讨论】:

      【解决方案2】:

      以编程方式添加 Web 部件很简单:

      SPWeb site = SPContext.Current.Web;
      SPFile page = web.GetFile("Pages/somepage.aspx");
      using (SPLimitedWebPartManager webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
      {
          try
          {
              // logic to get web parts  here. 
              ContentEditorWebPart webPart = new ContentEditorWebPart();      
              webPart.Title = "Test Web Part"; 
              webPartManager.AddWebPart(webPart, "Zone 1", 0);
          }
          finally
          {
              // SPLimitedWebPartManager has known memory leak where it does not dispose SPRequest object in its SPWeb, so dispose it
              webPartManager.Web.Dispose();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2011-03-12
        • 1970-01-01
        • 2011-03-31
        • 2011-03-15
        • 2012-01-03
        • 2012-03-16
        • 2011-07-30
        • 1970-01-01
        • 2015-09-17
        相关资源
        最近更新 更多