2014-02-05 43 views
5

我一直在嘗試獲取網格上單擊單元格的值。獲取網格上點擊單元格的值

cellDblClick: function(self, td, cellIndex, record, tr, rowIndex, e, eOpts) 

我知道我可以獲取記錄數據,但我需要列的名稱來獲取數據的值。

record.data["name_of_column"] 

什麼是獲取點擊的單元格在網格上的值? 是否可以獲取網格上單擊的單元格的列名稱?

任何人都可以爲我散光嗎?

N.B. 我正在使用extjs 4.2.1

回答

13

您可以按如下所示使用帶cellclick監聽器的grid的viewConfig。

viewConfig : { 
    listeners : { 
     cellclick : function(view, cell, cellIndex, record,row, rowIndex, e) { 

       var clickedDataIndex = view.panel.headerCt.getHeaderAtIndex(cellIndex).dataIndex; 
       var clickedColumnName = view.panel.headerCt.getHeaderAtIndex(cellIndex).text; 
       var clickedCellValue = record.get(clickedDataIndex); 
      } 
    } 
} 
0

您可以使用:

onGridpanelCellDblClick: function(tableview, td, cellIndex, record, tr, rowIndex, e, eOpts) { 
 
    var clickedColumnName = record.getFields()[cellIndex-1].getName(); 
 
    var clickedCellValue = record.get(clickedColumnName); 
 
}

細胞指數從1開始,所以你必須使用cellIndex-1由record.getFields返回的數組() 。

+1

,如果您有任何其他的順序在模型字段定義字段網格列這是不行的。由於Extjs網格本身支持拖動列,從而更改它們的順序,因此即使您最初具有與模型字段相同順序的列,這也不起作用。 – MarthyM

0

您可以使用:

cellclick: function(thisGrid, td, cellIndex, record, tr, rowIndex, e, eOpts) 
{ 
    console.log('td/cell value: ', td.innerText); 

},