簡體   English   中英

這是一種以編程方式替換SharePoint頁面上的內容的明智方法嗎?

[英]Is this a sensible way to programatically replace content on a SharePoint Page?

我已經將一個龐大的頁面分解成幾個“一口大小”的塊。 我想一次向用戶展示它們。 在一頁之后,他們單擊HTML按鈕(“下一步”),然后將上一個Web部件或Co​​ntent Editor Web部件替換為下一個。

此頁面上 ,我想出了一些偽代碼(我不知道是否確實存在可以調用的SPLimitedWebPartManager.RemoveWebPart()方法(如下面的偽代碼所述),或者如何獲得對當前(大約)的引用。被替換)[內容編輯器] Web部件,但這是基本思想:

using (SPSite site = new SPSite("http://~"))
{
    SPWeb web = site.RootWeb;
    SPFile page = web.GetFile("Pages/Web_Form_Post_Travel_Expense.aspx");
    page.CheckOut();

    using (SPLimitedWebPartManager wpmgr = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
    {
        XmlElement d = new XmlDocument().CreateElement("div");
        d.InnerText = get
        ContentEditorWebPart cewp = new ContentEditorWebPart
        {
            Content = d
        };
        ContentEditorWebPart currentCEWP = ?;
        wpmgr.RemoveWebPart(currentCEWP);
        wpmgr.AddWebPart(cewp, "Header", 0);
    }

    page.CheckIn(String.Empty);
}

這有意義嗎? 簽出頁面,對其進行更改並重新簽入,對我來說似乎有點怪異甚至徹頭徹尾。

我目前唯一想到的另一件事是將整個shebang放入一個Web部件中,但是首先將第2-6部分隱藏起來,然后依次顯示一個片段(在隱藏前一個片段之后)。 IOW,這種類型的程序:

First Section shows
All others hidden

User selects "Next" button

First section is hidden
Second section shows, while all others remain hidden.

etc.

實際上,這兩個想法對我而言似乎至少有點不明智。 一種方法是可取的,還是我沒有想到的第三種方法會比兩種方法都更好?

CheckOut()CheckIn(string value)的作用是什么? 這是問題嗎?

我查看了Microsoft.SharePoint命名空間SPSite類 ,但似乎什么都沒有定義。

我最好的猜測是這是一種在其他人打開文檔時將其鎖定的方法。

請參閱以下支持項目:

這樣,如果您讓Mark Twain簽出進行編輯,則沒有其他人可以簽出進行編輯。

另一方面,如果只想查看內容,則可以簽出一個部分,將其全部讀入StringBuilder,將內容簽回到SharePoint中,然后根據需要顯示文本。

暫無
暫無

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

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