我有一个rowexpander,并且在每行expander中,还有另一个行扩展器。但是在rowexpanders内部没有扩展调用expandAllRows()
Ext.each(partyPanels, function (partyPanel, index) {
partyPanel.expand(true); // Expand the parties
partyPanel.grid.expander.expandAllRows(); // Expand all the rows of the grid
partyPanel.grid.expander.grid.expander.expandAllRows();
});
什么是解决方案?
答案 0 :(得分:1)
如果每个嵌套网格(带有rowexpander)依赖于其父网格(使用rowexpander),则需要在网格afterrender事件侦听器之后将expandbody调用嵌套在另一个内部。这就是我必须要做的。基本上,您需要将参数传递给每个嵌套网格,因此这些参数将成为配置。然后在网格定义中,使用me.variableForRowExpander拉出这些变量,然后展开嵌套网格。
根据您构建网格的方式,您至少可以使用此概念并从那里开始。
Ext.define('App.view.MyGrid', {
extend: 'Ext.grid.Panel',
//网格配置
listeners: {
afterrender: function(grid) {
var me = this;
this.getView().on('expandbody',
function(rowNode, record, expandbody) {
// place logic to build another nested grid dynamically.
// ideally rowexpander should be placed inside the grid definition, not when instantiating the grid
// me.gridCustomVariable = variable necessary to build nested grid and nested rowexpander configuration
}
}
}