夢幻之旅

          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 閱讀(698) 評論(0)  編輯  收藏 所屬分類: EXT
          主站蜘蛛池模板: 内丘县| 临湘市| 武隆县| 万年县| 闵行区| 五华县| 乌兰察布市| 乡宁县| 陆河县| 永川市| 沙雅县| 根河市| 甘洛县| 施甸县| 天水市| 博客| 本溪| 略阳县| 广东省| 杭州市| 察哈| 揭阳市| 承德县| 石河子市| 玛曲县| 日照市| 玉田县| 博罗县| 溧阳市| 射洪县| 彭水| 大石桥市| 天门市| 澳门| 洛隆县| 花垣县| 安西县| 凤凰县| 崇阳县| 凤山县| 祁东县|