I have created a grid with extjs 4. The selection.CheckboxModel is implemented to. This means that the row is selected/deselected wherever you click on the particular row. Now i want to disable this selection on the last column since it contains custom buttons. (I don't want to select the row if a button is clicked).
Any idea's how to do this?
Many thanks in advance!
This is actually a tricky little problem, if only because Sencha documentation is lacking.
The CheckboxModel does indeed have a beforeselect
event inherited from Ext.selection.RowModel
. However, there's no easy way to get the column index because frankly, that's the point of the RowModel.
However, there's an undocumented event in Ext.view.Table
(which your grid will inherit) called beforecellmousedown
. Here's the event parameters:
So you would probably try something like this:
viewConfig: {
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){
if(cellIdx === indexOfLastColumnInGrid){
return false;
}
}
}
}
Both the cell and row indexes are zero-based.
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') {
return false;
}
}
}
Thanx Eric. This i the final solution!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With