Как программно обновить содержимое в веб-части SharePoint? - PullRequest
7 голосов
/ 28 января 2009

Кто-нибудь знает, как программно обновить содержимое любой из стандартных веб-частей SharePoint v3?

Например, поместите веб-часть "Сводка ссылок" на страницу. Добавьте несколько ссылок на него. Теперь, как я могу обновить эту информацию, используя WSS API? Я не нашел прямого способа сделать это, моя единственная идея - экспортировать веб-часть (затем удалить ее), изменить сгенерированный XML и импортировать его обратно. Но, конечно, должен быть более легкий путь?

Ответы [ 2 ]

9 голосов
/ 28 января 2009

Вы можете использовать класс SPLimitedWebPartManager для управления веб-частями на странице веб-частей. Экземпляр этого класса можно получить из объекта SPFile следующим образом:

using (SPSite site = new SPSite("<site url>"))  // e.g. http://server/sites/asite
using (SPWeb web = site.OpenWeb())
{
    SPFile file = web.GetFile("<page url>");   // e.g. /sites/asite/default.aspx
    SPLimitedWebPartManager lwpm = file.GetLimitedWebPartManager();
    SPLimitedWebPartCollection webParts = lwpm.WebParts;
    WebPart wp = webParts[<id, index or Guid>];

    // Add your code to update the Web Part

    lwpm.SaveChanges(wp);
}

Вы также можете добавлять или удалять веб-части с помощью SPLimitedWebPartManager.

5 голосов
/ 28 января 2009

Вам, вероятно, нужно будет позвонить SPWeb.GetWebPartCollection и использовать коллекцию веб-частей, чтобы связываться с веб-частями , таким образом

...