如何判断页面是否在非发布网站上处于编辑模式

时间:2009-11-27 10:37:14

标签: sharepoint sharepoint-2007

对于我们的发布网站,如果当前页面处于编辑模式,我们会使用SPContext.Current.FormContext.FormMode枚举来计算。我已经看到这对我目前正在开发的团队网站不起作用。 FormMode始终设置为“无效”。

但是,当我单击示例页面上的编辑页面时,页面会切换到编辑模式,因此必须有其他方式知道页面处于编辑模式。那么如何判断我是否处于团队网站中的页面的编辑模式呢?

干杯。 雅各

2 个答案:

答案 0 :(得分:8)

对于我的场景,我发现我可以使用WebPartManager对象来查明当前页面是否处于编辑模式。

Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page)

result = wpm.DisplayMode.Name.Equals("design", StringComparison.InvariantCultureIgnoreCase)

上面的代码告诉我当前页面是否处于编辑模式,因为webpart区域处于设计模式。如果不处于设计模式,DisplayMode通常会为“浏览”。

答案 1 :(得分:3)

SPContext.Current.FormContext.FormMode不能在OnInit中使用;那里总是无效的。稍后再试;例如,我在OnPreRender中使用它。

WebPartManager.DisplayMode可用于检查编辑器区域中的编辑器部件是否处于活动状态。这是另外一件事 - 你可以让页面处于编辑模式。它取决于您希望在场景中检查的内容。

顺便说一句,使用只读成员进行比较,例如:wpm.DisplayMode == WebPartManager.EditDisplayMode。

--- Ferda Prantl