Я использую SharePoint онлайн.
Я хочу использовать этот CSOM-код для добавления веб-части на страницу:
SP.File oFile = _web.GetFileByUrl(SiteUrl + "/SitePages/" + pageName);
oFile.CheckOut();
LimitedWebPartManager limitedWebPartManager = oFile.GetLimitedWebPartManager(PersonalizationScope.Shared);
var importedWebPart = limitedWebPartManager.ImportWebPart(webPartSchemaXml);
var webPart = limitedWebPartManager.AddWebPart(importedWebPart.WebPart, zoneid, zoneIndex);
oFile.Update();
await SiteCtx.ExecuteQueryAsync();
oFile.CheckIn(String.Empty, CheckinType.MinorCheckIn);
Проблема в том, как назначить правильные значения строковой переменной zoneid
,
имя зоны веб-части, в которую нужно добавить веб-часть.
Когда я запускаю этот код, ничего не происходит!
(он не добавляет WebPart на страницу, и я подозреваю, что он связан с неправильным ID зоны).
Я читал различные посты, начиная от доступа к коду позади страницы .aspx
, пытаясь найти WebPartZone, доступа к классу WebPartManager
(в котором должен быть указан ZoneId, но я не знаю, как его получить, с тех пор я использую класс LimitedWebPartManager
).
Я пробовал различные значения для zoneId, но на данный момент ни одно из них не работает:
- Зона 1 (только предположение!)
- Зона 2 (я вижу ее на правой вкладке при ручном редактировании веб-части через страницу редактирования)
- Body ( с этим код работал несколько дней назад! , но теперь он больше не работает)
- Заголовок
- левый
- Bottom
Каков правильный метод findind zoneId?
EDIT
Страница - это домашняя страница, я где-то читал, что это вики-страница , так что, возможно, у нее разные ZoneId.