这是一种以编程方式替换 SharePoint 页面上的内容的明智方法吗?

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

我已经将一个巨大的页面分解成几个 "bite-size" 块。我想一次一个地向用户展示它们。在一页之后,他们单击 HTML 按钮 ("Next"),然后上一个 Web 部件或内容编辑器 Web 部件被下一个替换。

this page,我想出了一些伪代码(我不知道是否真的有我可以调用的 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 Part中,但先隐藏第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 namespace and the SPSite class,但似乎没有任何定义。

我最好的猜测是这是一种在文档被另一个人打开时对其进行锁定的方法。

查看以下支持项目:

这样一来,如果您Mark Twain签出编辑,其他人就无法签出编辑。

另一方面,如果您只是想查看内容,您可以签出一个部分,将其全部读入 StringBuilder,将内容签回 SharePoint,然后显示文本需要它