zoukankan      html  css  js  c++  java
  • SharePoint中判断WebPart是否在编辑模式

    相信大家经常进行编辑(配置)WebPart的属性等操作.

    有些时候,在我们配置属性的时候,可能我们会希望这个时候,页面上的webpart区域显示其它内容或提示信息.

    那我们如何判断我们是不是在编辑模式中呢?

    可能大家知道这样一个小窍门:在URL中加上DisplayMode=Design就可以让当前页面进入设计模式.

    那我们可以通过判断DisplayMode及其值来判断当前页面是否处于编辑模式中.

    但是:如果我们通过点击"编辑页面"进入的话,将不会有这个查询参数存在在URL中.

    ----

    不知道 SharePoint有没有提供相关的API给我们操作,反正我是没有找到.反而是找到几个相关的东东:
    WebPart中有个事件处理方法:OnEditModeChanged,很可能的是,事件参数是EventArgs,并没有指明当前页面是否正处于编辑模式中?

    而WebPartManage有两个方法:BeginWebPartEditing和EndWebPartEditing,同样很可惜,也没有直接指明是不是在编辑中.

    没办法,走偏方:

    每一个模式下,我们都可以发现HTML源码中,都有MSOSPWebPartManager_DisplayModeName这个隐藏域. 而在不同的模式下,其值是不一样的:

      浏览:Browse   页面编辑:Design  WebPart编辑:Edit

    OK,足够了,这3个值再加上DisplayMode,足够我们折腾的了.

    <---题外:在HTML源码中,还有不少值得我们研究的东东,也许一些感觉棘手的问题,答案就在其中-->

    ----

    折腾完后,我搞出这样一个方法:

    public bool CheckIsEditing()
    {
        //if (null == this.Page.Request["MSOLayout_InDesignMode"])
        //    return false;
        //string strMode = this.Page.Request["MSOLayout_InDesignMode"].ToLower().Trim();    
        //if (strMode == "1")
        //    return true;
        //return false;
        if (!string.IsNullOrEmpty(Page.Request["DisplayMode"]) && Page.Request["DisplayMode"].ToLower().Trim() == "design")
             return true;
        if (null == this.Page.Request["MSOSPWebPartManager_DisplayModeName"] )
             return false;
        string strMode = this.Page.Request["MSOSPWebPartManager_DisplayModeName"].ToLower().Trim();    
        if (strMode == "browse")
             return false;  
        if (strMode == "design" || strMode=="edit")
             return true;
        return false;
    }
  • 相关阅读:
    sigaction函数解析
    实战Nginx与PHP(FastCGI)的安装、配置与优化
    Linux下Nginx+PHP 简单安装配置
    Nginx安装配置PHP(FastCGI)环境的教程
    Linux上配置Nginx+PHP5(FastCGI)
    @JoinTable和@JoinColumn
    Spring Data JPA 之 一对一,一对多,多对多 关系映射
    MyChrome制作Chrome浏览器便携版
    注解@CrossOrigin解决跨域问题
    MySQL查看表结构及查看建表语句
  • 原文地址:https://www.cnblogs.com/masahiro/p/10128891.html
Copyright © 2011-2022 走看看