Перемещение веб -части в другую зону на странице
-
16-10-2019 - |
Вопрос
Как программно перемещать веб -частя из одной зоны в другую на странице?
У меня есть несколько сайтов, которые я хочу пройти через каждый сайт и обновить страницу.
Решение
Использовать SplimitedWebPartManager.moveWebpart Метод:
string zoneId = "TopZone"; // ID of the WebPartZone control
string zoneIndex = 0; // Location of web part within zone
string webPartTitle = "Sales Tips"; // Title of web part
string filename = "default.aspx"; // Filename relative to SPWeb object
using (SPLimitedWebPartManager webPartManager =
site.GetLimitedWebPartManager(filename, PersonalizationScope.Shared))
{
try
{
foreach (WebPart webPart in webPartManager.WebParts)
{
if (webPart.Title == webPartTitle)
{
webPartManager.MoveWebPart(webPart, zoneId, zoneIndex);
webPartManager.SaveChanges(webPart);
break;
}
}
}
finally
{
webPartManager.Web.Dispose();
}
}
Другие советы
В дополнение к ответу от Алекса, будьте осторожны, когда вы итерации свои коллекции и сайты сайтов. Если вы сделаете это из приложения консоли, в котором вам нужно установить свой собственный контекст, у вас будет очень быстро, если вы забудете утилизировать свои объекты SPSite и SpWeb во время итерации (например, sites.allwebs).
Прочитайте и поймите руководящие принципы по утилизации MSDN:Лучшие практики: использование одноразовых объектов SharePoint Services
Не связан с sharepoint.stackexchange