Javascript 在ExtJs中使用相同的组件
我有几个extjs网格,我将它们定义如下:Javascript 在ExtJs中使用相同的组件,javascript,extjs,components,Javascript,Extjs,Components,我有几个extjs网格,我将它们定义如下: var aGrid = new Ext.grid.GridPanel({ bbar : pagingToolbar }); var bGrid = new Ext.grid.GridPanel({ bbar : pagingToolbar }); 但是,如果我像上面那样使用pagingToolbar,它将无法正常工作。 只有第一个网格工作,在第二个级别中,工具栏不显示。 一次只有一个栅格处于活动状态。是的 myTabPanel
var aGrid = new Ext.grid.GridPanel({
bbar : pagingToolbar
});
var bGrid = new Ext.grid.GridPanel({
bbar : pagingToolbar
});
但是,如果我像上面那样使用pagingToolbar
,它将无法正常工作。
只有第一个网格工作,在第二个级别中,工具栏不显示。
一次只有一个栅格处于活动状态。是的
myTabPanel.hideTabStripItem(aGrid);
myTabPanel.add(bGrid).show();
aGrid.bbar = null;
bGrid.bbar = pagingToolbar;
您应该按如下方式实例化它们:
var aGrid = new Ext.grid.GridPanel({
bbar : pagingToolbar1
});
var bGrid = new Ext.grid.GridPanel({
bbar : pagingToolbar2
});
我一直使用的另一种方法是:
var aGrid = new Ext.grid.GridPanel({
bbar : { xtype: 'pagingtoolbar', store: 'Ext.data.Store'}
});
var bGrid = new Ext.grid.GridPanel({
bbar :{ xtype: 'pagingtoolbar', store: 'Ext.data.Store'}
});
使用每个对象的两个实例(如store或pagingtoolbar)是绝对必要的。不能同时将同一个苹果放在桌子上的两个不同位置。组件也是如此。。。你为什么要这么做?如果您想要两个具有相同属性/行为的组件,请创建一个类并实例化两次。@rixo我没有同时使用
pagingtoolbar
控件。我已经更新了问题。在这种情况下还会有问题吗?我没有同时使用pagingtoolbar
控件。我已经更新了问题。在这种情况下还会有问题吗?不,如果在呈现网格之前更改网格的配置不会有问题,但是在显示一个组件后,更改其配置不会更新其外观。重要的一点是使用组件的不同实例,因为每个组件都保存已渲染组件的DOM元素。