夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks

           

          完整的GridPanel也有了,我現在需要將它組裝到后臺管理中去。現在要求點擊一下左邊Tree中的“人員信息”節點,右邊的TabPanel就顯示出與之對應的GridPanel。最簡單的方法就是在TabPanel的html屬性(應該可以這么叫吧)中使用iframe來打開另一個用于顯示GridPanel的頁面,相關代碼如下:

          var c1=new Ext.tree.TreeNode({
          id:'c1',
          text:'人員信息',
          listeners:{
          'click':function(node, event) {
          event.stopEvent();
          var n = tab.getComponent(node.id);
          if (!n) { //判斷是否已經打開該面板
          n = tab.add({
          'id':node.id,
          'title':node.text,
          closable:true,  //通過html載入目標頁
          html:'<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="UserListGridPanel.jsp"></iframe>'
          });
          }
          tab.setActiveTab(n);
          }
          }
          });

          這種做法雖然很簡單,但是又帶來兩個問題:
          1.頁面會刷新
          2.UserListGridPanel.jsp頁面中也必須加載龐大的ExtJS庫
          當然也有辦法解決了,可以使用autoLoad來解決。修改上面的代碼:

          var c1=new Ext.tree.TreeNode({
          id:'c1',
          text:'人員信息',
          listeners:{
          'click':function(node, event) {
          event.stopEvent();
          var n = tab.getComponent(node.id);
          if (!n) { //判斷是否已經打開該面板
          n = tab.add({
          'id':node.id,
          'title':node.text,
          closable:true,  //自動載入UserListGridPanel.jsp頁面,該頁面含有JavaScript,不緩存
          autoLoad:{url:'UserListGridPanel.jsp',scripts:true,nocache:true}
          });
          }
          tab.setActiveTab(n);
          }
          }
          });

          用了之后我又頭大了,正常的話應該是如圖下圖所示。


          可現在得到的卻是下面這種結果。


          想來想去,改來改去,最后我猜想應該是渲染的時候出問題了,上面兩種方式中UserListGridPanel的renderTo屬性一直都是Ext.getBody(),可是顯示結果卻不一樣,也就是說兩種情況下的Ext.getBody()不是同一個對象(OOP習慣了,什么都是對象O(∩_∩)O哈哈~)。第一種方式中Ext.getBody()指的就UserListGridPanel.jsp,而第二種方式中Ext.getBody()指的則是main.jsp。
          于是試著在UserListGridPanel.jsp中創建一個id為“UserListGridPanel”的div,然后修改rederTo屬性為Ext.get(‘UserListGridPanel’),看來猜的沒錯,這樣改確實可以??墒琼撁嬗肿兂上旅孢@樣了:


          我快抓狂了…
          再次把JS翻來覆去的改了N遍,得到的結果還是那樣…
          可是單獨運行UserListGridPanel.jsp卻是正常的??!突然想到了點什么,上面不是說用autoLoad時,被載入的頁面中可以不用再載入ExtJS庫嗎?而我現在的UserListGridPanel.jsp中還載入了ExtJS庫,會不會和main.jsp中的發生沖突了?
          結果當然不言而喻了。

          posted on 2010-10-19 17:13 HUIKK 閱讀(689) 評論(0)  編輯  收藏 所屬分類: EXT
          主站蜘蛛池模板: 福建省| 客服| 洪江市| 广州市| 涟源市| 会昌县| 临沧市| 洞口县| 山东| 绵竹市| 湛江市| 静海县| 新巴尔虎右旗| 中西区| 罗江县| 和林格尔县| 都昌县| 高碑店市| 昌都县| 房产| 资溪县| 含山县| 台北市| 佛教| 磐石市| 竹溪县| 龙里县| 门源| 长宁区| 新宁县| 荥经县| 乃东县| 错那县| 河池市| 琼海市| 旌德县| 巴彦淖尔市| 林口县| 高邮市| 祥云县| 芦溪县|