SharePoint判断页面(或WebPart)是否处于编辑模式.
2010-07-04 17:36
295 查看
相信大家经常进行编辑(配置)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源码中,还有不少值得我们研究的东东,也许一些感觉棘手的问题,答案就在其中-->
----
折腾完后,我搞出这样一个方法:
1 public bool CheckIsEditing()
2 {
3 //if (null == this.Page.Request["MSOLayout_InDesignMode"])
4 // return false;
5 //string strMode = this.Page.Request["MSOLayout_InDesignMode"].ToLower().Trim();
6 //if (strMode == "1")
7 // return true;
8 //return false;
9 if (!string.IsNullOrEmpty(Page.Request["DisplayMode"]) && Page.Request["DisplayMode"].ToLower().Trim() == "design")
10 return true;
11 if (null == this.Page.Request["MSOSPWebPartManager_DisplayModeName"] )
12 return false;
13 string strMode = this.Page.Request["MSOSPWebPartManager_DisplayModeName"].ToLower().Trim();
14 if (strMode == "browse")
15 return false;
16 if (strMode == "design" || strMode=="edit")
17 return true;
18 return false;
19
20 }
不知道些方法好不好用,先记录在些,权当记流水帐了.
----话说:深圳的天气真TMD热,而我等P民买不起空调,只有天天蒸桑拿!!!!
有些时候,在我们配置属性的时候,可能我们会希望这个时候,页面上的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源码中,还有不少值得我们研究的东东,也许一些感觉棘手的问题,答案就在其中-->
----
折腾完后,我搞出这样一个方法:
1 public bool CheckIsEditing()
2 {
3 //if (null == this.Page.Request["MSOLayout_InDesignMode"])
4 // return false;
5 //string strMode = this.Page.Request["MSOLayout_InDesignMode"].ToLower().Trim();
6 //if (strMode == "1")
7 // return true;
8 //return false;
9 if (!string.IsNullOrEmpty(Page.Request["DisplayMode"]) && Page.Request["DisplayMode"].ToLower().Trim() == "design")
10 return true;
11 if (null == this.Page.Request["MSOSPWebPartManager_DisplayModeName"] )
12 return false;
13 string strMode = this.Page.Request["MSOSPWebPartManager_DisplayModeName"].ToLower().Trim();
14 if (strMode == "browse")
15 return false;
16 if (strMode == "design" || strMode=="edit")
17 return true;
18 return false;
19
20 }
不知道些方法好不好用,先记录在些,权当记流水帐了.
----话说:深圳的天气真TMD热,而我等P民买不起空调,只有天天蒸桑拿!!!!
相关文章推荐
- SharePoint【用户访问控制】-- sharepoint 判断当前用户在当前页面是否有某项权限
- 当GridView处于编辑状态时,需要判断是否继续,并根据判断执行下一步操作
- 判断GridView是否处于编辑状态
- js判断页面是否处于选中状态啊
- GridView控件中Alternate行(交替行)是否处于编辑状态的判断
- 判断Excel单元格是否处于编辑状态
- Winform中自定义控件判断是否处于IDE设计模式(DesignMode,Designtime,构造函数,Load)
- Winform中自定义控件判断是否处于IDE设计模式(DesignMode,Designtime,构造函数,Load)
- sharepoint 判断当前用户在当前页面是否有某项权限
- 判断当前是否处于Laucher主页面
- JS判断SharePoint页面编辑状态
- VS2005中判断girdview是否处于编辑状态?
- 判断当前系统是否处于全屏独占的模式
- 判断GridView是否处于编辑状态
- Geodatabase - 判断是否处于编辑状态
- C#判断VS是否处于设计模式
- 判断页面是否处于框架页面中
- 判断是否运行在VB IDE编辑模式下
- WINFORM中自定义控件判断是否处于IDE设计模式
- Android开发之adb && 破解开屏图案 && 代码判断当前是否处于锁屏状态并绕过解锁页面