我已经将一个巨大的页面分成几个“一口大小”的块。我想一次一个地向用户展示它们。浏览完一页后,他们单击 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.
实际上,这两个想法在我看来至少有点靠不住。一种方法更可取,还是我没有想到的第三种方法会比两者都好?