前幾天做了一個功能實現,在一個tabpanel上的多個tab標籤存放同一個數據源裏的的不同的數據,其中tab標籤的title爲自動生成的。其中存放數據裏的容器爲GridPanel,因爲是同一個GridPanel,所以store是唯一一個,如裏每個tab頁都存放一個GridPanel的話,就需要同等量的store,這裏會很麻煩。頁面效果如下圖:
其中,每個tab頁裏存放的不同的數據,加載數據的方式也爲異步加載,點擊事件觸發時,加載數據。
上面四個tab標籤的title爲數據裏面的字段(四個不同階段:JDMC),在加載數據源前,先有自動通過後臺方法獲得四個階段的名稱,方便tab點擊事件觸發事,根據不同的階段(JDMC)爲參數獲得數據。
前臺引用EXTJS的代碼就省略,直接上引用JS代碼:
這裏面要注意的是:
1.第一個默認的tab加載的是GRIDPANEL的初始的STORE,沒有參數,所以在後臺需要做一下處理,默認沒有參加時,獲得第一個階段的數據。
2.TAB的點擊事件,
首先要清空之前的加載的GRIDPANEL的數據:grid_info.getStore().removeAll();
然後再通過不同的參數重新爲GRIDPANEL加載數據:grid_info.getStore().load({params:{JDMC: com_jdmc1}});
然後再把獲得新的數據的GRIDPANEL加載到TAB上:args.add(grid_info); args.doLayout();
尤其注意不要忘了:args.doLayout();
剛開始處理的時候,一直處理,tab的點擊事件只有第一次可以加載上,第二的話就會空的情況,原來是沒有執行tab的doLayout()方法。
後臺的方法就不再贅述,就是通過方法獲得JSON數據源。