SharePoint判断页面(或WebPart)是否处于编辑模式.
相信大家經(jīng)常進(jìn)行編輯(配置)WebPart的屬性等操作.
有些時(shí)候,在我們配置屬性的時(shí)候,可能我們會(huì)希望這個(gè)時(shí)候,頁面上的webpart區(qū)域顯示其它內(nèi)容或提示信息.
那我們?nèi)绾闻袛辔覀兪遣皇窃诰庉嬆J街心?
可能大家知道這樣一個(gè)小竅門:在URL中加上DisplayMode=Design就可以讓當(dāng)前頁面進(jìn)入設(shè)計(jì)模式.
那我們可以通過判斷DisplayMode及其值來判斷當(dāng)前頁面是否處于編輯模式中.
但是:如果我們通過點(diǎn)擊"編輯頁面"進(jìn)入的話,將不會(huì)有這個(gè)查詢參數(shù)存在在URL中.
----
不知道 SharePoint有沒有提供相關(guān)的API給我們操作,反正我是沒有找到.反而是找到幾個(gè)相關(guān)的東東:
WebPart中有個(gè)事件處理方法:OnEditModeChanged,很可能的是,事件參數(shù)是EventArgs,并沒有指明當(dāng)前頁面是否正處于編輯模式中?
而WebPartManage有兩個(gè)方法:BeginWebPartEditing和EndWebPartEditing,同樣很可惜,也沒有直接指明是不是在編輯中.
沒辦法,走偏方:
每一個(gè)模式下,我們都可以發(fā)現(xiàn)HTML源碼中,都有MSOSPWebPartManager_DisplayModeName這個(gè)隱藏域. 而在不同的模式下,其值是不一樣的:
? 瀏覽:Browse?? 頁面編輯:Design? WebPart編輯:Edit
OK,足夠了,這3個(gè)值再加上DisplayMode,足夠我們折騰的了.
<---題外:在HTML源碼中,還有不少值得我們研究的東東,也許一些感覺棘手的問題,答案就在其中-->
----
折騰完后,我搞出這樣一個(gè)方法:
?
?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?????????}
?
?
不知道些方法好不好用,先記錄在些,權(quán)當(dāng)記流水帳了.
?----話說:深圳的天氣真TMD熱,而我等P民買不起空調(diào),只有天天蒸桑拿!!!!
轉(zhuǎn)載于:https://www.cnblogs.com/McJeremy/archive/2010/07/04/1770912.html
總結(jié)
以上是生活随笔為你收集整理的SharePoint判断页面(或WebPart)是否处于编辑模式.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JIRA
- 下一篇: 数据库管理专才四步走