[ACCEPTED]-JQGrid - Multiselect-multi-select
[Oct 2011] Updated to use 4.0 API, corrected shift-selection 10 bugs, simplified selection loop. Tested 9 in 4.2.0.
If like me, you needed a proper 8 multiselect in the jqgrid - where ctrl selects 7 a single row at a time, select selects multiple 6 rows and neither clear the selection and 5 selects 1 row - You've found it.
First things first: set multiselect: true
in 4 the grid definition (I didn't set any other 3 multiselect options)
Next: In gridComplete: function () {}
set grid.jqGrid('hideCol', 'cb');
- this hides 2 the checkboxes if you don't want them.
Finally: The 1 main part
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey && !e.shiftKey) {
$("#grid").jqGrid('resetSelection');
}
else if (e.shiftKey) {
var initialRowSelect = $("#grid").jqGrid('getGridParam', 'selrow');
$("#grid").jqGrid('resetSelection');
var CurrentSelectIndex = $("#grid").jqGrid('getInd', rowid);
var InitialSelectIndex = $("#grid").jqGrid('getInd', initialRowSelect);
var startID = "";
var endID = "";
if (CurrentSelectIndex > InitialSelectIndex) {
startID = initialRowSelect;
endID = rowid;
}
else {
startID = rowid;
endID = initialRowSelect;
}
var shouldSelectRow = false;
$.each($("#grid").getDataIDs(), function(_, id){
if ((shouldSelectRow = id == startID || shouldSelectRow)){
$("#grid").jqGrid('setSelection', id, false);
}
return id != endID;
});
}
return true;
}
The End - Hope that helps
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.