1

我已经将一个巨大的页面分成几个“一口大小”的块。我想一次一个地向用户展示它们。浏览完一页后,他们单击 HTML 按钮(“下一步”),上一个 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 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.

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

4

1 回答 1

1

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

我查看了Microsoft.SharePoint 命名空间SPSite 类,但似乎没有定义任何内容。

我最好的猜测是,这是一种在文档被其他人打开时锁定文档的方法。

请参阅以下支持项目:

这样,如果您让马克吐温签出进行编辑,其他人就无法签出进行编辑。

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

于 2015-09-17T17:17:53.683 回答