这是一个明智的方式来编程替换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.
实际上,这两个想法在我看来至少有点不靠谱。是有一种方法更可取,还是有第三种我没有想到的比两种方法都更好的方法?
CheckOut()和CheckIn(string value)的作用是什么?是这个问题吗?
我看着微软。SharePoint名称空间和SPSite类,但似乎没有定义。
我的猜测是,这是一种在文档被另一个人打开时将其锁定的方法。
参见下列支持项:
-
SPFile。SPCheckOutStatus枚举
-
SPFile。SPCheckOutType枚举
-
SPFileCheckOutExceptionType枚举
-
SPFile。SPLockType枚举
这样,如果你把马克·吐温的书借出去编辑,别人就不能把它借出去编辑了。
另一方面,如果你只是想查看内容,你可以签出一个部分,将其全部读入StringBuilder,将内容签入SharePoint,然后在需要时显示文本