Перемещение веб -части в другую зону на странице

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/66

  •  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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top