【问题标题】:Programatically update a webpart property doesn't get updated以编程方式更新 Web 部件属性不会得到更新
【发布时间】:2012-06-06 05:46:36
【问题描述】:

我正在尝试以编程方式更新某些 Web 部件的标题。为此,我从站点获取所有页面,获取每个页面的 web 部件,并首先打印出当前标题,更改它,然后再次打印出来以验证标题是否正确更改。不过,如果我事后检查,我仍然会看到 Web 部件的旧标题......我错过了什么?

代码如下:

... getting the pages for the site...
SPFile ofile = page.File;

SPLimitedWebPartManager wpColl = ofile.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.User);
int cont = wpColl.WebParts.Count;

for (int i = 0; i < cont; i++)
{
    System.Web.UI.WebControls.WebParts.WebPart wp1 = wpColl.WebParts[i];

Console.WriteLine(" - Title : " + wp1.Title);

wp1.Title = "test" + i;

ofile.Update();
Console.WriteLine(" - New title: " + wp1.Title);

page.Update();
site.Update();                             
}

谢谢!

【问题讨论】:

    标签: c# sharepoint web-parts


    【解决方案1】:

    也许你应该使用 SPLimitedWebPartManager.Save(WebPart webPart) 方法来保存修改后的属性

    【讨论】:

    • 很好,工作!我只是在我的代码中添加了以下行,它最终更新了 webpart 标题:wpColl.SaveChanges(wp1);
    【解决方案2】:

    您是否尝试在更新前设置site.AllowUnsafeUpdates = true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 2010-09-30
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      相关资源
      最近更新 更多