代码之家  ›  专栏  ›  技术社区  ›  Jason Evans

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

  •  8
  • Jason Evans  · 技术社区  · 15 年前

    对于我们的发布网站,我们使用 SPContext.Current.FormContext.FormMode 枚举以确定当前页是否处于编辑模式。我已经看到,对于我当前正在工作的团队站点,这不起作用。FormMode始终设置为“无效”。

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

    干杯。 JAS。

    2 回复  |  直到 14 年前
        1
  •  8
  •   Jason Evans    15 年前

    对于我的场景,我发现我可以利用 WebPartManager 对象以确定当前页是否处于编辑模式。

    Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page)
    
    result = wpm.DisplayMode.Name.Equals("design", StringComparison.InvariantCultureIgnoreCase)
    

    上面的代码通知我当前页面是否处于编辑模式,因为Web部件区域处于设计模式。当不处于设计模式时, DisplayMode 通常是“浏览”。

        2
  •  3
  •   Ferdinand Prantl    14 年前

    不能在OnInit中使用spContext.current.formContext.formMode;它在OnInit中始终无效。稍后再试;例如,我在OnPreRender中使用它。

    WebPartManager.DisplayMode可用于检查编辑器区域中的编辑器部件是否处于活动状态。这是另外一件事——你可以让页面处于编辑模式而不需要它。这取决于您想在场景中检查什么。

    顺便说一下,使用只读成员进行比较,例如:wpm.displaymode==WebPartManager.editDisplayMode。

    ——费尔达·普兰特