2011-04-18 36 views
0

我需要我的jquery展開和摺疊代碼才能實際回寫到Web部件管理器。例如,如果網頁部分被最小化,其狀態將被記住。例如,如果頁面被刷新,則個人化設置將被保留。Sharepoint 2010 WebParts Jquery最小化寫回WebPArt管理器

初論1.

用戶WCF服務這將通過與所述的WebParts ID jquery的代碼來調用。 Wcf服務將簡單地更新網絡部分的狀態

理論2. 調用相同的JavaScript函數,當最小化被選擇時,哪個共享點調用。一直試圖找到它似乎是

有什麼建議嗎?

+0

這似乎是... 。 什麼?如果有一個開箱即用的功能,我會說使用它。否則,WCF是一個易於部署的解決方案。 – Colin 2011-04-18 12:34:43

回答

0

我通過構建一個WCF服務來完成這個工作,

的GUID是jQuery的Ajax調用,當web部件最小

公共字符串UpdateCurrentWebPart(字符串guidString)通過了該網頁組件的客戶端ID {

 SPWeb myweb = SPContext.Current.Web; 
     myweb.AllowUnsafeUpdates = true; 

     //only want the webparts with have personal settings 
     using (SPLimitedWebPartManager mgr = myweb.GetLimitedWebPartManager("pages/default.aspx", PersonalizationScope.User)) 
     { 

      string result = "Not found " + guidString; 

      //find my webpart 
      foreach (System.Web.UI.WebControls.WebParts.WebPart _webpart in mgr.WebParts) 
      { 
       if (guidString.Contains(_webpart.ClientID)) 
       { 
        try 
        { 
         //toggle it 
         if (_webpart.ChromeState == PartChromeState.Minimized) 
         { 
          _webpart.ChromeState = PartChromeState.Normal; 
         } 
         else 
         { 
          _webpart.ChromeState = PartChromeState.Minimized; 

         } 

         //save it 
         mgr.SaveChanges(_webpart); 

         //useful for debugging 
         result = guidString + _webpart.ChromeState.ToString(); 

        } 
        catch 
        { 
        } 

       } 


      } 

      return result; 

     }