我有一个网格,它有动态列生成,我的问题是,在我创建它之后,我意识到我需要tree.Panel而不是grid.Panel具有相同的列。
代码非常简单:一个侦听器,一个控制器函数,用于生成用于重新配置视图的列数组。
现在这适用于grid.Panel,正在生成列,但不生成tree.Panel。我没有错误,没有任何指出我的错误......
grid.Panel:
tree.Panel:
视图:
Ext.define('x.view.valuegrid.valuegrid', {
extend: 'Ext.grid.Panel', //old grid version
//extend: 'Ext.tree.Panel', <-- not working
requires: [
'x.view.valuegrid.valuegridModel',
'x.view.valuegrid.valuegridController'
],
xtype: 'valuegrid',
viewModel: {
type: 'valuegrid'
},
controller: 'valuegrid',
enableLocking: true,
//useArrows: true,
//rootVisible: false,
listeners: {
beforerender: 'loadColumns'
}
});
viewController代码生成列:
var columns = [];
//create first column
var firstColumn = {//xtype: 'treecolumn',
text: firstColumnData.label,
width: firstColumnData.width,
menuDisabled: true,
locked: true};
columns.push(firstColumn);
//create dimension columns
for(i = 0; i < dimensions.length; i++){
var dim = {text: dimensions[i].label,
width: 150, //parseInt(dimensions[i].width),
menuDisabled: true,
locked: true};
columns.push(dim);
}
//create value columns
for(i = 0; i < groups.length; i++){
var group = {text: groups[i], menuDisabled: true};
var valCols = [];
for(j = 0; j < valueColumns.length; j++){
if(valueColumns[j].group == groups[i]){
valCol = {text: valueColumns[j].label,
width: 75,
menuDisabled: true}
valCols.push(valCol);
}
}
group.columns = valCols;
columns.push(group);
}
//reconfigure new columns
grid.reconfigure(null, columns);
答案 0 :(得分:0)
解决了这个问题,我只需要添加columns: []
来查看。
虽然我想知道,为什么这不是grid.Panel的问题?如果有人能够正确地向我解释,我会接受它作为答案。