我的网格有分组列。
我的部分代码如下:
Ext.require([
'Ext.grid.*',
'Ext.ux.grid.FiltersFeature',
'Ext.ux.LiveSearchGridPanel'
...
]);
var filters = {
ftype: 'filters',
encode: false,
local: true
};
var grid = new Ext.create('Ext.ux.LiveSearchGridPanel', {
selType: 'cellmodel',
store: store,
columns:[
{
header: "Column1"
dataIndex: 'Column1'
},{
header: "Column2",
columns : [{
header: "innerColumn1",
dataIndex: 'innerColumn1'
},{
header: "innerColumn2"
dataIndex: 'innerColumn2'
}]
},{
header: "Column3",
dataIndex: 'Column3'
}],
features: [filters]
...
现在,如果我使用grid.columnManager.getColumns()
,则返回以下列:
Column1
innerColumn1
innerColumn2
Column3
它不会返回Column2
,它是innerColumn1
&的parentColumn / groupColumn。 innerColumn2
。我应该使用哪种Ext Js方法在columnList中获取Column2
?我正在使用Ext Js 4.2。任何帮助将不胜感激。
答案 0 :(得分:1)
获取所有列的解决方案之一是使用Ext ComponentQuery。我创建了这个fiddle。运行这个小提琴后,请查看开发人员控制台。
获取所有列的最简单的查询是:
grid.query('gridcolumn:not([hidden])')// Open fiddle for full example
它只会返回所有可见列。您可以根据自己的要求更改查询。
例如,要仅获取分组列,您可以使用此
grid.query('gridcolumn[isGroupHeader=true]')
Click here有关ComponentQuery的更多信息。
答案 1 :(得分:1)
grid.getColumnmanager().getColumns()
不提供分组列的父列。列管理器只处理叶子列。
在迭代列时,您可以访问仅在子窗格列中可用的isSubHeader
属性,然后通过ownerCt
属性访问父列。