获取extjs4网格上的标题名称

时间:2011-12-13 14:01:19

标签: extjs4

我试图获取单元格点击的列标题,但我找不到正确的方法来执行此操作

现在,我正在使用此代码来识别列:

if (position.column == 5 /*this is column name*/) 

显然这是一个糟糕的选择,因为网格上的任何更改都会对代码产生影响。

再次感谢您的帮助

2 个答案:

答案 0 :(得分:1)

假设您使用的是Ext.Grid.Panel。有一个可以索引的列数组,可以为您提供列定义。 “text”属性将包含显示的列名。

alert(gridPanel.columns[0].text); //Alerts the 1st columns' header text.

如果这不能回答你的问题,那么更多的背景会有所帮助。您在哪个位置捕获您的位置?

如果您正在尝试确定更好的方法来获取列位置设置,则网格的初始配置selType属性为“cellmodel”将为您提供Ext.selection.CellModel选择模型,其select事件将为您提供当前单元格位置( col,row)。

var grid = Ext.create('Ext.grid.Panel', {
        store: store,
        columns: [{
                id: 'common',
                header: 'Collumn 1'
            }, {
             header: 'Column 2'
            }
        ],
        selModel: {
            selType: 'cellmodel'
        }
    });
    grid.getSelectionModel().addListener('select', function(selModel, record, row, column, eOpts){
        alert(grid.columns[column].text);
    });

答案 1 :(得分:0)

最好的方法可能取决于代码的位置,但这里有一些来自CellEditing插件的代码,这可能是一个很好的起点:

editColumnHeader = grid.headerCt.getHeaderAtIndex(position.column);

从那里,text看起来会起作用,如果您在列中设置了itemId,也可以使用{{1}}。