SPFx - Предоставление веб-части с помощью кода на домашней странице удаляет другое содержимое - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь подготовить сайт связи с помощью SharePoint CSOM / REST, а затем добавляю веб-часть на домашнюю страницу. Первая часть (обеспечение) работает хорошо. Однако, когда я добавляю веб-часть с помощью пакета SharePointPnPCoreOnline NuGet, все существующие веб-части на домашней странице удаляются.

Вот мой код обеспечения (упрощенный для краткости):

var homePage = clientContext.Web.LoadClientSidePage("Home.aspx");
var clientSideComponent = homePage.AvailableClientSideComponents()
    .SingleOrDefault(csc => csc.Id.Equals("{<web part ID here>}", StringComparison.OrdinalIgnoreCase));
ClientSideWebPart webPart = new ClientSideWebPart(clientSideComponent);
CanvasSection section = new CanvasSection(homePage, CanvasSectionTemplate.OneColumn, 0);
homePage.Sections.Add(section);
homePage.Save();
homePage.AddControl(webPart, section.Columns[0]);
homePage.Save();
homePage.Publish();

Когда сайт только что подготовлен, а домашняя страница еще не изменена:

  • На странице отображается набор веб-частей по умолчанию. Например, если я выбрал дизайн «Тема», я смогу увидеть
    • раздел полной ширины, содержащий веб-часть «Герой», с пятью плитками и некоторыми приветственными сообщениями и ссылками
    • Раздел «один столбец», содержащий несколько веб-частей: новости, события, документы, быстрые ссылки и профили пользователей.
  • Содержимое страницы, загруженное с сайта «SitePages»библиотека, не содержит элемент <mso:CanvasContent1 />, поэтому она не имеет явно определенной веб-части.
  • Содержимое этих веб-частей взято из https://spoprod-a.akamaihd.net/files/sp-client-prod_2019-09-20.008/sp-pages-assembly_en-us_36e69c06b20e347fb4426bfdff916a8e.js файла
  • Содержимое веб-частипереведен на язык текущего пользователя.

После того, как я снабдил свою веб-часть предыдущим кодом, веб-часть присутствует на странице, но все исходные веб-части были удалены.

Если вместо автоматической подготовки веб-части я выполняю ее вручную:

  • Сохраняются веб-части по умолчанию.
  • На странице, хранящейся в "SitePages", яможно увидеть оригинальные веб-частии моя веб-часть в элементе <mso:CanvasContent1 />.
  • Исходный контент больше не переводится, а доступен только на языке пользователя, который первым отредактировал страницу.

Итак, мой вопрос: есть ли способ программным образом добавить веб-часть на домашнюю страницу недавно подготовленного современного сайта (группы или коммуникации), не удаляя веб-части по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...