【问题标题】:How to tell if page is in edit mode on a non-publishing site如何判断页面是否在非发布站点上处于编辑模式
【发布时间】:2010-12-20 22:46:22
【问题描述】:

对于我们的发布网站,我们使用SPContext.Current.FormContext.FormMode 枚举来确定当前页面是否处于编辑模式。我发现这不适用于我目前正在处理的团队网站。 FormMode 始终设置为“无效”。

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

干杯。 贾斯。

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

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

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

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

    【讨论】:

    • 最好检查 wpm.DisplayMode.AllowPageDesign,因为它涵盖了“设计”和“编辑”两种情况 - 在第一种情况下,Web 部件区域处于设计模式,在第二种情况下,其 Web 部件处于编辑模式 - 两种情况都表明页面处于编辑模式
    【解决方案2】:

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

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

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

    --- 费达普兰特尔

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2012-11-29
      • 2011-01-22
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多