2009-08-19 47 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);