2009-06-05 98 views
1

在SharePoint 2007 Web部件中,我想要删除现有属性并将其替换为使用其他名称的属性。我想从现有财产中获取价值并将其分配给新财产。如何更改Web部件属性值

我该怎么做?

回答

2

总结:

  • 获取到包含Web部件的页面引用。
  • 获取对Web部件本身的引用。
  • 更改属性值。
  • 保存更改。

在代码:

using (SPSite site = new SPSite("http://sharepoint")) 
using (SPWeb web = site.OpenWeb("Web Title")) 
using (SPLimitedWebPartManager webPartManager = 
     web.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared)) 
{ 
    try 
    { 
     foreach (WebPart webPart in webPartManager.WebParts) 
     { 
      if ((webPart.Title == "Web Part Title") && (!webPart.IsClosed)) 
      { 
       YourWebPart wp = (YourWebPart)webPart; 
       wp.NewProperty = wp.OldProperty; 
       webPartManager.SaveChanges(wp); 
       web.Update(); 
       break; 
      } 
     } 
    } 
    finally 
    { 
     webPartManager.Web.Dispose(); 
    } 
} 

替换该代码示例如下:

  • http://sharepoint - 您的SharePoint网站的地址
  • “网站标题“ - SharePoint w的标题包含Web部件EB改变(或使用其他OpenWeb重载
  • “的Default.aspx”之一 - 包含Web部件
  • “Web部件标题”页面的文件名 - 标题给页面上的Web部件
  • YourWebPart - Web部件的类名进行更改
  • NewProperty/OldProperty - 属性的名称改变
+0

如果我想更改Web部件内部的属性值,这是否需要?我正在提交一个模式对话框,用于刷新Web部件编辑页面。我可以在PreRender或任何其他函数上获得该值,并且我想将该值保存在我创建的自定义属性上。 – nhenrique 2013-09-18 10:04:55