風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          Ext應用三 -- Tab(2)

          前面在使用了簡單的tab之后,在后來的應用中,又用到了高級tab。

          需要用戶點擊一個鏈接之后,在panel中新增tab。這里有很多地方有疑問。

          1、在var viewport = new Ext.Viewport()中定義tab是這樣子的。
          new Ext.TabPanel({
                          id:tabs,
                          region:'center',
                          enableTabScroll:
          true,
                          defaults: 
          {autoScroll:true},
                          deferredRender:
          false,
                          activeTab:
          0,
                          items:[
          {
                              contentEl:'center2',
                              title: 'Start',
                              autoScroll:
          true
                          }
          ]
                      }
          )
          但是這樣子導致這個TabPanel沒有變量名,不能直接操作。
          然后我試了通過viewport.add進行添加的方式,可能是方法使用錯誤,導致沒有出來。
          如果效果出來了。
          后面還有問題,我怎么通過這個tab來顯示一個頁面呢。通過ajax tab來顯示。在basic tab這個例子里有看到過,知識還沒有研究。

          下面是動態添加tab的方法
              function addTab(){
                  tabs.add(
          {
                      title: 'New Tab ' 
          + (++index),
                      iconCls: 'tabs',
                      html: 'Tab Body ' 
          + (index) + '<br/><br/>'
                              
          + Ext.example.bogusMarkup,
                      closable:
          true
                  }
          ).show();
              }
          就通過TabPanel這個對象的變量來直接add。在add時候再動態載入頁面內容。

          var viewport = new Ext.Viewport({
          layout: 'border',
          items: [{
          region: 'north',
          html: 'menu'
          }, {
          id: 'center_panel',
          region: 'center',
          layout: 'card',
          items: [
          {id: 'first_center', html: 'first center'}
          ]

          }]
          });


          var center = Ext.getCmp('center_panel');
          center.remove('first_center');
          center.add({
          id: 'second_center',
          html: 'second center'
          });
          center.getLayout().setActiveItem('second_center');
          center.doLayout();

          通過指定TabPanel id,然后通過Ext.getCmp('center_panel'),就可以獲得這個panel的句柄,就可以對這個組件進行操作。layout在add/remove之后需要調用center.doLayout()方法,才能使后來新建的tab的生效。

          3、ajax tab
          function addFormTab(strScreen_ID, strScreenName){
            var tabs = Ext.getCmp('tabs');
            tabs.add({
             id: strScreen_ID,
             title: strScreenName,
             //html: 'second center',
             autoLoad: {url: './pages/web/business_frame.jsp', params: 'screen_ID=WEB.BU&screen_FK=' + strScreen_ID},
             closable:true
            });
            tabs.getLayout().setActiveItem(strScreen_ID);
            tabs.doLayout();
           }

           autoLoad: {url: './pages/web/business_frame.jsp', params: 'screen_ID=WEB.BU&screen_FK=' + strScreen_ID}

          指定這個autoload,就可以從相應的指定頁面載入。

          以上已經測試成功。嘿嘿:)

          posted on 2008-01-09 10:15 風人園 閱讀(4863) 評論(5)  編輯  收藏 所屬分類: Ext

          評論

          # re: Ext應用三 -- 高級Tab  回復  更多評論   

          受益匪淺 感謝兄弟發表這些文章
          努力學習中......
          2008-07-06 02:37 | whoua

          # re: Ext應用三 -- 高級Tab  回復  更多評論   

          你那id:'tabs'忘記加引號了
          2008-07-06 02:51 | whoua

          # re: Ext應用三 -- 高級Tab  回復  更多評論   

          能用tab autoload一個viewport的頁面?
          2008-10-24 09:40 | jmty

          # re: Ext應用三 -- 高級Tab  回復  更多評論   

          我就奇怪了,一個簡單的東西,標題還非得寫成“高級tab”
          2009-04-14 12:28 | bishi

          # re: Ext應用三 -- Tab(2)  回復  更多評論   

          高級tab 是相對 base tab 來說
          2010-01-29 21:46 | 試試
          主站蜘蛛池模板: 华蓥市| 绥棱县| 商水县| 和政县| 盐边县| 孝义市| 佛坪县| 微山县| 五指山市| 沂水县| 霍城县| 哈尔滨市| 定南县| 南川市| 越西县| 客服| 内丘县| 山东| 青河县| 横山县| 花垣县| 常宁市| 红安县| 于都县| 昌黎县| 龙川县| 诸暨市| 肃北| 民乐县| 定陶县| 昌图县| 延长县| 揭东县| 乌鲁木齐市| 西吉县| 孟州市| 隆林| 温州市| 定远县| 醴陵市| 麟游县|