这是以编程方式替换 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 页面上的内容的明智方法吗?的主要内容,如果未能解决你的问题,请参考以下文章
当 .click() 不起作用时,如何以编程方式单击此页面上的按钮?