2012-01-11 47 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