2009-08-19 97 views
2

我有一个extjs网格面板设置,我希望能够根据用户点击网格中的文本或图标来做些事情。例如,如果用户单击(或双击)某列中的单词,则过滤网格,或者如果用户单击某个图标,则显示一个弹出框。我可以很容易地获取他们点击的行,并根据该行的列名获取值,但我不知道哪个列被点击。如何从ExtJS网格中的rowselection获取列名称?

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

有什么可以做到的内置功能吗?

+0

以下后可以抛出一些有用的光: http://stackoverflow.com/questions/8083004/getcellrow-col-在-GWT-HTMLTABLE/8571224#8571224 – 2011-12-20 05:41:22

回答

7

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

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

如果你想要得到的栅格单元的文字,呼吁yourGrid.getView().getCell(rowIndex, colIndex)将返回DOM元素。

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

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

0

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

1

我认为如果你对列明智事件感兴趣rowselection是一个错误的事件来看看。正如约书亚所建议的cellclick事件将是你必须研究的事件。

此事件能给列的dataIndex给出

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