Search code examples
extjsextjs4selection

How to remove multiple selected rows from grid


I have grid then I can select few or all the rows and on toolbar with a "delete" button. I can delete one row, but for remove several; selected rows I don't have a method.

Can somebody help me? Thank you.

The following is for deletion of one selected row:

listeners: {
    click: {
        scope: this,
        fn: function(sm, selection) {
            var selection = this.getView().getSelectionModel().getSelection()[0];
            /*if (selection.length > 1) {
                store.removeAll(selection);
            }*/ //This not working
            else {
                store.remove(selection);
            }
            store.sync();
        }
    }
}

Solution

  • selectionModel.getSelection() will give you array of records. If you are able to get all the selected rows you can access each row in a loop and also you can leave some of the selected rows.

    onDeleteClick : function() {
        var studentGrid = this.getStudentGrid();
        var studentStore = studentGrid.getStore();
        var selectedRows = studentGrid.getSelectionModel().getSelection();
    
        if (selectedRows.length) {
            studentStore.remove(selectedRows);
        } else {
            Ext.Msg.alert('Status', 'Please select at least one record to delete!');
        }
     }