欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

TabPanel多標簽tab頁加載同一個GridPanel顯示不

系統(tǒng) 2048 0

前幾天做了一個功能實現(xiàn),在一個tabpanel上的多個tab標簽存放同一個數(shù)據(jù)源里的的不同的數(shù)據(jù),其中tab標簽的title為自動生成的。其中存放數(shù)據(jù)里的容器為GridPanel,因為是同一個GridPanel,所以store是唯一一個,如里每個tab頁都存放一個GridPanel的話,就需要同等量的store,這里會很麻煩。頁面效果如下圖:

TabPanel多標簽tab頁加載同一個GridPanel顯示不同的數(shù)據(jù)

其中,每個tab頁里存放的不同的數(shù)據(jù),加載數(shù)據(jù)的方式也為異步加載,點擊事件觸發(fā)時,加載數(shù)據(jù)。

上面四個tab標簽的title為數(shù)據(jù)里面的字段(四個不同階段:JDMC),在加載數(shù)據(jù)源前,先有自動通過后臺方法獲得四個階段的名稱,方便tab點擊事件觸發(fā)事,根據(jù)不同的階段(JDMC)為參數(shù)獲得數(shù)據(jù)。

前臺引用EXTJS的代碼就省略,直接上引用JS代碼:

  1. varcom_jdmc;
  2. varcom_jdmc1;
  3. varcom_jdmc2;
  4. varcom_jdmc3;
  5. varcom_jdmc4;
  6. Ext.onReady(function(){
  7. //首先運行此方法,獲得過后獲得所需的不同階段的參數(shù)
  8. renderPage();
  9. //為tab設置title,同時初始化開始定義的JDMC的值,下面往后臺傳參時使用
  10. functiongetJdmcInfo(response,option){
  11. try
  12. {
  13. varobj=Ext.util.JSON.decode(response.responseText);
  14. if (obj.data.length==4)
  15. {
  16. com_jdmc1=obj.data[0].JDMC;
  17. com_jdmc2=obj.data[1].JDMC;
  18. com_jdmc3=obj.data[2].JDMC;
  19. com_jdmc4=obj.data[3].JDMC;
  20. Ext.getCmp( 'tab0' ).setTitle(com_jdmc1);
  21. Ext.getCmp( 'tab1' ).setTitle(com_jdmc2);
  22. Ext.getCmp( 'tab2' ).setTitle(com_jdmc3);
  23. Ext.getCmp( 'tab3' ).setTitle(com_jdmc4);
  24. }
  25. }
  26. catch (err)
  27. {
  28. Ext.Msg.alert( '錯誤信息' ,err.description);
  29. }
  30. }
  31. //后臺請求方法,獲得參數(shù)JMDC數(shù)據(jù)
  32. functionrenderPage(){
  33. Ext.Ajax.request(
  34. {
  35. url: 'xxxx.aspx' ,
  36. success:getJdmcInfo,
  37. failure:requestFail,
  38. params :{action: 'getJDMC' }
  39. });
  40. }
  41. functionrequestFail(response,option){
  42. Ext.Msg.alert( '獲得階段失敗' , '請檢查網(wǎng)絡' );
  43. }
  44. //GridPanel的內(nèi)容折疊項
  45. varexpander= new Ext.ux.grid.RowExpander({
  46. tpl: new Ext.Template(
  47. '<pstyle="height:auto"><b>匯報內(nèi)容:</b><br>{HBNR}</p>'
  48. )
  49. });
  50. //GridPanel的數(shù)據(jù)源
  51. varstore0= new Ext.data.JsonStore({
  52. url: 'xxxx.aspx' ,
  53. baseParams:{action: 'getData' },
  54. root: 'data' ,
  55. autoLoad: true ,
  56. fields:[ 'HBDW' , 'HBR' , 'LRSJ' , 'HBSJ' , 'HBNR' , 'JDMC' ],
  57. reader: new Ext.data.JsonReader({},[
  58. {name: 'HBDW' },
  59. {name: 'HBR' },
  60. {name: 'LRSJ' ,type: 'date' },
  61. {name: 'HBSJ' ,type: 'date' },
  62. {name: 'JDMC' },
  63. {name: 'HBNR' }
  64. ])
  65. });
  66. //數(shù)據(jù)容器GirdPanel
  67. vargrid_info= new Ext.grid.GridPanel({
  68. store:store0,
  69. cm: new Ext.grid.ColumnModel({
  70. columns:[
  71. expander,
  72. {header: "匯報單位" ,width:150,dataIndex: 'HBDW' },
  73. {header: "匯報人" ,width:110,dataIndex: 'HBR' },
  74. {header: "匯報時間" ,width:100,dataIndex: 'HBSJ' },
  75. {header: "匯報階段" ,width:140,dataIndex: 'JDMC' }
  76. ]
  77. }),
  78. viewConfig:{
  79. forceFit: true
  80. },
  81. columnLines: true ,
  82. plugins:expander,
  83. width:500,
  84. height:564,
  85. collapsible: false , //列表能否收縮
  86. animCollapse: false ,
  87. iconCls: 'icon-grid'
  88. });
  89. //Tab頁[默認加載第一個tab,同時初始化第一個tab的數(shù)據(jù)(即初始化gridpanel),其它的tab只有初始ID值]
  90. varcenterTabs= new Ext.TabPanel({
  91. id: 'centerTabs' ,
  92. renderTo:document.body,
  93. deferredRender: false ,
  94. enableTabScroll: true ,
  95. activeTab:0,
  96. width:500,
  97. height:564,
  98. headerAsText: true ,
  99. margins: '0000' ,
  100. items:[
  101. {
  102. id: 'tab0' ,
  103. items:[grid_info]
  104. },
  105. {
  106. id: 'tab1'
  107. }
  108. ,
  109. {
  110. id: 'tab2'
  111. }
  112. ,
  113. {
  114. id: 'tab3'
  115. }
  116. ]
  117. });
  118. //為不同的TAB點擊事件加載數(shù)據(jù)源
  119. centerTabs.on( 'tabchange' ,function(e,args){
  120. if (args.getItemId()== 'tab0' )
  121. {
  122. grid_info.getStore().removeAll();
  123. grid_info.getStore().load({ params :{JDMC:com_jdmc1}});
  124. args.add(grid_info);
  125. args.doLayout();
  126. com_jdmc=com_jdmc1;
  127. }
  128. else if (args.getItemId()== 'tab1' )
  129. {
  130. grid_info.getStore().removeAll();
  131. grid_info.getStore().load({ params :{JDMC:com_jdmc2}});
  132. args.add(grid_info);
  133. args.doLayout();
  134. com_jdmc=com_jdmc2;
  135. }
  136. else if (args.getItemId()== 'tab2' )
  137. {
  138. grid_info.getStore().removeAll();
  139. grid_info.getStore().load({ params :{JDMC:com_jdmc3}});
  140. args.add(grid_info);
  141. args.doLayout();
  142. com_jdmc=com_jdmc3;
  143. }
  144. else if (args.getItemId()== 'tab3' )
  145. {
  146. grid_info.getStore().removeAll();
  147. grid_info.getStore().load({ params :{JDMC:com_jdmc4}});
  148. args.add(grid_info);
  149. args.doLayout();
  150. com_jdmc=com_jdmc4;
  151. }
  152. });
  153. });

這里面要注意的是:

1.第一個默認的tab加載的是GRIDPANEL的初始的STORE,沒有參數(shù),所以在后臺需要做一下處理,默認沒有參加時,獲得第一個階段的數(shù)據(jù)。

2.TAB的點擊事件,

首先要清空之前的加載的GRIDPANEL的數(shù)據(jù):grid_info.getStore().removeAll();

然后再通過不同的參數(shù)重新為GRIDPANEL加載數(shù)據(jù):grid_info.getStore().load({params:{JDMC: com_jdmc1}});

然后再把獲得新的數(shù)據(jù)的GRIDPANEL加載到TAB上:args.add(grid_info);args.doLayout();

尤其注意不要忘了: args.doLayout();

剛開始處理的時候,一直處理,tab的點擊事件只有第一次可以加載上,第二的話就會空的情況,原來是沒有執(zhí)行tab的doLayout()方法。

后臺的方法就不再贅述,就是通過方法獲得JSON數(shù)據(jù)源。

TabPanel多標簽tab頁加載同一個GridPanel顯示不同的數(shù)據(jù)


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久久久久久网站 | 欧美综合区 | 色www 永久免费网站 | 麻豆av电影在线观看 | sese国产 | 浮力影院在线观看 | 国产精品综合亚洲AV久久久小说 | 国产成人一区二区三区 | 自拍偷拍第一页 | av高清 | 亚洲福利一区福利三区 | 国产成人精品一区二区三区四区 | 日韩电影中文字幕 | 亚洲高清在线看 | 小明成人永久视频在线观看 | 日韩三区| 成人午夜电影网 | 久久青| 久草在线精品ac | 香港午夜三级a三级高清观看 | 国产精品夜色一区二区三区 | www.99热这里只有精品 | 欧美精品综合在线 | 免费一级片| 亚洲午夜在线视频 | 国产精品久久久久国产A级 首页亚洲国产丝袜长腿综合 | 91精品国产综合久久福利 | 首页亚洲国产丝袜长腿综合 | 久久国产影院 | 欧美高清观看免费全部完 | 上将的炮灰前妻重生了 | 日本女人毛茸茸 | 亚欧在线一线 | 国产综合视频 | 91久久精品日日躁夜夜躁国产 | 33eee在线视频免费观看 | 午夜激情视频免费 | 欧美在线观看视频 | 奇米影视小说 | 亚洲一区无码中文字幕 | 男人添女人下面免费网站 |