Blog Archive

ExtJs 4 get selected Rows and Cells from a Grid panel

How to get selected Rows from a Grid panel in ExtJs 4

  • get reference to grid selection model could be rowModel or cellModel depending on what was defined in the grid definition selType: 'cellmodel' or selType: 'rowmodel'
    • seletionModel = grid.getSelectionModel()
  • get array of the currently selected records
    • selectedRecords = selectionModel.getSelection()
  • get the value of given field definition from the first selected row
    • myValue = selectedRecords[0].get('fieldName')
    • loop thru selectedRecords for more records if MULTI selection was allowed

How to get selected Cells from a Grid panel in ExtJs 4

  • To get selected cell you must used selType = cellModel. After you get reference to the selectionModel as defined above use
    • getCurrentPosition( )
    • Returns the current position in the format {row: row, column: column}
  • After you have the current row and column get the grid view to access the cell
    • cell = grid.getView().getCellByPosition({row: obj.rowIdx, column: obj.colIdx});

Please Note: The getSelection() method of the cellmodel is not working in extjs 4.0.7 version. I tried that in extjs 4.1.0 beta version and it worked ! You can also use the cellModel events such as select or selectionchange  to capture the clicked cell for future use.

Recommended Reading