Как вставить заголовок на страницу SharePoint - PullRequest
0 голосов
/ 28 мая 2018

У меня очень простое требование, но, конечно, как и в случае с CSOM, кажется, действительно трудно чего-либо достичь.У меня действительно было решение для этого, но теперь, когда шаблон сайта изменился (вне моего контроля), больше ничего не работает, и я понятия не имею, как это отладить.

Требование

Добавление простого заголовка к существующей странице SharePoint.

Старое решение

Этораньше работал отлично.Я передаю имя страницы, веб-часть xml и детали зоны (я понятия не имею, как я нашел те, которые кажутся нелепо сложными, просто вставив веб-часть с кодом ... почему? ...)

Когда я пытаюсь сделать это сейчас, я получаю

указанный объект не принадлежит списку

2-го ExecuteQuery()

private void InsertWebPart(ClientContext clientContext, string webPartXml, string markerTemplate, 
    string pagePath, string zoneId, int zoneIndex, string description, string content, string fieldName)
{
    var relUrl = new Uri(baseUrl).AbsolutePath;

    clientContext.Credentials = credentials;
    var web = clientContext.Web;

    var page = clientContext.Web.GetFileByServerRelativeUrl($"{relUrl}/{pagePath}");
    var webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared);

    var importedWebPart = webPartManager.ImportWebPart(webPartXml);
    var webPart = webPartManager.AddWebPart(importedWebPart.WebPart, zoneId, zoneIndex);
    clientContext.Load(webPart);
    clientContext.ExecuteQuery();

    var marker = string.Format(markerTemplate, webPart.Id);

    var item = page.ListItemAllFields;
    clientContext.Load(item);
    clientContext.ExecuteQuery();

    item[fieldName] = marker + item[fieldName];
    item.Update();

    clientContext.ExecuteQuery();
}

Я пытался это решение , но все, что я получаю, это

указанный объект не принадлежит списку

Снова ... Пожалуйста, можетекто-то посоветует?

Насколько сложно просто добавить 1 заголовок?

1 Ответ

0 голосов
/ 29 мая 2018

Проверьте приведенное ниже решение:

1.Вы можете добавить «? Contents = 1» на текущей странице сайта и удалить пользовательскую веб-часть, добавив ее с помощью кода CSOM.

2.Откройте страницу сайта с помощью дизайнера SharePoint и отредактируйте ее в расширенном режиме.

3.Добавьте HTML-код заголовка и код JavaScript в элемент управления «PlaceHolderMain».

Пример кода:

<div id="customHeader" style="height:20px;width:auto;background-color:green">Test</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(function () {
    $("#ms-designer-ribbon").before($("#customHeader"));
});
</script>

4.Сохраните страницу.

enter image description here

Если вы не можете использовать дизайнер SharePoint, мы также можем использовать скриптвеб-часть редактора / веб-часть редактора контента с некоторым HTML-кодом для его достижения.

Если вы хотите, чтобы все страницы имели собственный заголовок, мы можем добавить код на главную страницу, чтобы он работал.

...