如何从ExtJS网格中的rowselection获取列名?

时间:2009-08-19 14:52:39

标签: javascript extjs grid

我有一个extjs网格面板设置,我希望能够根据用户点击网格中的文本或图标来执行操作。例如,如果用户单击(或双击)列中的单词,则过滤网格,或者如果用户单击图标,则显示弹出窗口。我可以很容易地获取他们点击的行,并按该行的列名称输入值,但我不知道单击了哪一列。

或者,我可以将onClick添加到整个网格,然后我可以从行/列中获取单个文本,但我不知道该值属于哪个行索引或列。我可以添加一个CSS类来告诉我一个列名,但这看起来像是一个黑客。

是否有内置功能可以做到这一点?

3 个答案:

答案 0 :(得分:7)

网格上的"cellclick" event是要走的路。听取此事件的函数将被传递:

  • ( Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e )

如果你想获得gridCell的文本,调用yourGrid.getView().getCell(rowIndex, colIndex)将返回DOM元素。

如果您想获取列标题,请致电:yourGrid.getColumnModel()getColumnHeader(colIndex)

如果您想查找有关特定列的任何其他内容,请致电yourGrid.getColumnModel()getColumnAt(colIndex)

答案 1 :(得分:1)

我认为如果您对列明智事件感兴趣,则rowselection是一个错误的事件。正如约书亚所建议的那样cellclick事件你必须要调查。

此事件可以将列的dataIndex给定为

var fieldName = grid.getColumnModel().getDataIndex(columnIndex); 

答案 2 :(得分:0)

请查看edit-grid.html示例,了解复选框呈现和事件处理。