我已经实现了扩展Ext.grid.Panel的Grid A,并实现了扩展Grid A的其他一些Grid。对于扩展Grid A的所有Grid,我已经通过它们的父Grid(Grid 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的所有子网格的末尾添加了一个额外的列。我已经在Panel上添加了所有这些网格(比如GridsPanel),这些控件将进一步添加到选项卡中。GridsPanel是可关闭的(也可以通过按钮在Tab中重新添加)。单击关闭按钮时,它会成功关闭,但每当我将GridsPanel重新添加到选项卡时,网格A在所有子网格的末尾添加了两列。事实上,网格A并没有添加两列,但在关闭GridsPanel之前添加的列仍然存在,并且没有被删除。类似地,关闭GridsPanel并通过单击按钮再次创建它,将向子网格添加另一列,从而使添加的列总数达到3。因此,构造函数的功能实际上是正确工作的,即它在子网格的末尾添加了一个额外的列,但在完全销毁网格时存在一些问题。
1条答案
按热度按时间qyuhtwio1#
我得到了解决方案,并想与其他人分享它,因为它可能会帮助其他人。问题实际上是在添加额外的列在每个子网格的末尾在构造函数。添加额外的列在网格
viewready
事件解决了问题。因此,以这种方式添加柱会完全破坏轴网及其柱。