我试图获取单元格点击的列标题,但我找不到正确的方法来执行此操作
现在,我正在使用此代码来识别列:
if (position.column == 5 /*this is column name*/)
显然这是一个糟糕的选择,因为网格上的任何更改都会对代码产生影响。
再次感谢您的帮助
答案 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}}。