2012-01-11 52 views
0

我正在使用重新配置功能來更改 面板表格的列和數據。尋呼商店沒有更改

見我寫

var newStore = Ext.create('Ext.data.Store', { 
     fields: tmpFields, 
     pageSize: itemsPerPage, 
     proxy: { 
      type: 'ajax', 
      url: getDataWithPageURL, 

     } 
    }); 


    globalStore = newStore.load({ 
     params: { 
      start: 0, 
      limit: itemsPerPage 
     } 
    }); 

    grid.reconfigure(globalStore, tmpColumns); 

代碼的代碼工作的下方,並且數據被改變。 但分頁和總數確實顯示舊數據。

請幫忙。

回答

0

我認爲這是重新配置函數中的錯誤。

所以我創建了分頁欄並再次添加。見下面

var PagingBar = Ext.create('Ext.PagingToolbar', { 
     pageSize: itemsPerPage, 
     store: globalStore, 
     dock: 'bottom', 
     displayInfo: true 
    }); 

    grid.removeDocked(grid.getDockedItems()[1]); 

    grid.addDocked(PagingBar); 
1

在ExtJS的代碼,PagingToolbar與給定Store密切合作,這就是爲什麼有掛在reconfigure因爲reconfigure沒有事件偵聽Ext.panel.Table定義的原因。

因此,另一種解決方案是重新綁定存儲時reconfigure已經被解僱,那就是:

Ext.define('NS.toolbar.Paging', { 
    extend: 'Ext.toolbar.Paging', 
    initComponent: function() { 
     var me = this; 
     me.callParent(); 
     me.on('afterrender', function() { 
      me.ownerCt.on('reconfigure', function() { 
       me.bindStore(me.ownerCt.store || 'ext-empty-store', true); 
      }); 
     }); 
    } 
}); 

它讀成,在PagingToolbar已經呈現後,我們的函數綁定到事件reconfigure,使每當發生reconfigure時,都會在分頁工具欄中重新綁定商店。

經過測試,它的工作原理。 Try it out here at jsfiddle

乾杯

+0

我已經siolved它。謝謝您的幫助 – 2012-01-12 10:26:30