SharePoint判斷頁面(或WebPart)是否處於編輯模式.

來源:互聯網
上載者:User

相信大家經常進行編輯(配置)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民買不起空調,只有天天蒸桑拿!!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.