簡體   English   中英

如何在SharePoint頁面上插入標題

[英]How to insert a header on SharePoint page

我有一個非常簡單的要求,但是當然與CSOM一樣,要實現任何目標似乎都很困難。 我確實有解決方案,但是現在網站模板已更改(在我的控制范圍之外),不再起作用,並且我不知道如何調試此模板。

需求

將簡單的標頭添加到現有的SharePoint頁面。

舊解決方案

過去效果很好。 我輸入了頁面名稱,Web部件xml和區域詳細信息(我不知道我是如何發現那些僅用代碼插入Web部件就顯得非常荒謬的原因的。為什么?...)

當我現在嘗試時,我得到

指定的對象不屬於列表

在第二個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.您可以在當前站點頁面中添加“?contents = 1”,並刪除使用CSOM代碼添加的自定義Web部件。

2.使用SharePoint Designer打開網站頁面,然后在“高級模式”下進行編輯。

3.在“ PlaceHolderMain”控件下添加Header HTML代碼和JavaScript代碼。

示例代碼:

<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.保存頁面。

在此處輸入圖片說明

如果您不能使用SharePoint設計器,我們還可以使用腳本編輯器Web部件/內容編輯器Web部件以及一些HTML代碼來實現它。

如果要使所有頁面都具有自定義標題,我們可以在母版頁中添加一些代碼以使其起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM