我有一个extjs网格面板设置,我希望能够根据用户点击网格中的文本或图标来执行操作。例如,如果用户单击(或双击)列中的单词,则过滤网格,或者如果用户单击图标,则显示弹出窗口。我可以很容易地获取他们点击的行,并按该行的列名称输入值,但我不知道单击了哪一列。
或者,我可以将onClick添加到整个网格,然后我可以从行/列中获取单个文本,但我不知道该值属于哪个行索引或列。我可以添加一个CSS类来告诉我一个列名,但这看起来像是一个黑客。
是否有内置功能可以做到这一点?
答案 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示例,了解复选框呈现和事件处理。