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

Posted

技术标签:

【中文标题】这是以编程方式替换 SharePoint 页面上的内容的明智方法吗?【英文标题】:Is this a sensible way to programatically replace content on a SharePoint Page? 【发布时间】:2015-12-09 06:12:52 【问题描述】:

我已将一个巨大的页面分成几个“一口大小”的块。我想一次一个地向用户展示它们。浏览完一页后,他们单击 html 按钮(“下一步”),上一个 Web 部件或内容编辑器 Web 部件将被下一个替换。

从this page,我想出了一些伪代码(我不知道是否真的有一个可以调用的SPLimitedWebPartManager.RemoveWebPart() 方法,如下伪代码,或者如何获取对当前( about-to-be-replaced) [Content Editor] Web Part,但这是基本思想:

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.

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

【问题讨论】:

【参考方案1】:

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

我查看了Microsoft.SharePoint namespace 和SPSite class,但似乎没有任何定义。

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

请看以下配套项目:

SPFile.SPCheckOutStatus enumeration

SPFile.SPCheckOutType enumeration

SPFileCheckOutExceptionType enumeration

SPFile.SPLockType enumeration

这样,如果您已签出 Mark Twain 以进行编辑,其他人将无法签出以进行编辑。

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

【讨论】:

我很惊讶没有其他人花时间查看它。甚至没有人对这个问题进行投票。哦,好吧。 Sharepoint 有点像鬼城;像往常一样,我的专业编码(Sharepoint)和我的个人编码(Meteor)有很大的不同,但两者目前都比较“花哨”(这不是一个真实的词,所以谁知道拼写应该是什么)。 Sharepoint 可能正在减弱;不过,流星正在打蜡。

以上是关于这是以编程方式替换 SharePoint 页面上的内容的明智方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

非 SharePoint 页面上的资源管理器视图

在目标 c 中以编程方式替换菜单视图

当 .click() 不起作用时,如何以编程方式单击此页面上的按钮?

以编程方式将 ScriptManager 添加到页面?

SharePoint 2010/Silverlight:以编程方式传递自定义参数

创建具有甘特图的 Sharepoint 列表 - 以编程方式