这是一个明智的方式来编程替换SharePoint页面上的内容

本文关键字:SharePoint 替换 编程 方式 一个 | 更新日期: 2023-09-27 18:12:26

我把一个巨大的页面分成了几个小块。我想把它们一次一个地呈现给用户。在一个页面之后,他们点击一个HTML按钮("Next"),上一个Web部件或内容编辑器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节隐藏,然后依次显示一个部分(隐藏前一个之后)。现在,这类程序:

First Section shows
All others hidden
User selects "Next" button
First section is hidden
Second section shows, while all others remain hidden.
etc.

实际上,这两个想法在我看来至少有点不靠谱。是有一种方法更可取,还是有第三种我没有想到的比两种方法都更好的方法?

这是一个明智的方式来编程替换SharePoint页面上的内容

CheckOut()CheckIn(string value)的作用是什么?是这个问题吗?

我看着微软。SharePoint名称空间和SPSite类,但似乎没有定义。

我的猜测是,这是一种在文档被另一个人打开时将其锁定的方法。

参见下列支持项:

  • SPFile。SPCheckOutStatus枚举

  • SPFile。SPCheckOutType枚举

  • SPFileCheckOutExceptionType枚举

  • SPFile。SPLockType枚举

这样,如果你把马克·吐温的书借出去编辑,别人就不能把它借出去编辑了。

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