对于我们的发布网站,如果当前页面处于编辑模式,我们会使用SPContext.Current.FormContext.FormMode
枚举来计算。我已经看到这对我目前正在开发的团队网站不起作用。 FormMode始终设置为“无效”。
但是,当我单击示例页面上的编辑页面时,页面会切换到编辑模式,因此必须有其他方式知道页面处于编辑模式。那么如何判断我是否处于团队网站中的页面的编辑模式呢?
干杯。 雅各
答案 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