我已经实现了扩展 Ext.grid.Panel 的网格 A 并实现了一些扩展网格 A 的其他网格。对于所有扩展网格 A 的网格,我通过其父网格的构造函数向它们添加了一个额外的列(网格一个)
constructor: function() {
this.columns.push({
xtype: 'gridcolumn',
//id: 'removeColumn',
header: '',
sortable: false,
dataIndex: 'action',
width: 25,
renderer: function (action, metaData, record, row, col, store, gridView) {
if (action == 'add') return icon = '<img style="height: 15px;width: 15px;" src="images/add.png"/>';
else return icon = '<img style="height: 15px;width: 15px;" src="images/close.png"/>';
}
});
this.callParent(arguments);
}
所以上面的代码在网格 A 的所有子网格的末尾添加了一个额外的列。我已经在一个面板上添加了所有这些网格(比如 GridsPanel ),这些网格进一步添加到一个选项卡中。GridsPanel 是可关闭的(也可以通过按钮在 Tab 中重新添加)。单击关闭按钮时,它会成功关闭,但是每当我将 GridsPanel 重新添加到选项卡时,网格 A 在所有子网格的末尾添加两列。事实是 Grid A 没有添加两列,但是在关闭 GridsPanel 之前添加的列仍然存在并且没有被删除。类似地,关闭 GridsPanel 并通过单击按钮再次创建它将向子网格添加另一列,从而使添加的列总数为 3。