Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 1.48 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. jqGrid multiple row selection advanced
  2. function multiSelectHandler(sid, e) {
  3.     var grid = $(e.target).closest("table.ui-jqgrid-btable");
  4.     var ts = grid[0], td = e.target;
  5.     var scb = $(td).hasClass("cbox");
  6.     if ((td.tagName == 'INPUT' && !scb) || td.tagName == 'A') {
  7.         return true;
  8.     }
  9.     var sel = grid.getGridParam('selarrrow');
  10.     var selected = $.inArray(sid, sel) >= 0;
  11.     if (e.ctrlKey || (scb && (selected || !e.shiftKey))) {
  12.         grid.setSelection(sid,true);
  13.     } else {
  14.         if (e.shiftKey) {
  15.             var six = grid.getInd(sid);
  16.             var min = six, max = six;
  17.             $.each(sel, function() {
  18.                     var ix = grid.getInd(this);
  19.                     if (ix < min) min = ix;
  20.                     if (ix > max) max = ix;
  21.                 });
  22.             while (min <= max) {
  23.                 var row = ts.rows[min++];
  24.                 var rid = row.id;
  25.                 if (rid != sid && $.inArray(rid, sel)<0) {
  26.                     grid.setSelection(row.id, false);
  27.                 }
  28.             }
  29.         } else if (!selected) {
  30.             grid.resetSelection();
  31.         }
  32.         if (!selected) {
  33.             grid.setSelection(sid,true);
  34.         } else {
  35.             var osr = grid.getGridParam('onSelectRow');
  36.             if ($.isFunction(osr)) {
  37.                 osr(sid, true);
  38.             }
  39.         }
  40.     }
  41. }
  42.        
  43. $("#gridid").jqGrid({
  44. // Rest of code to configure grid
  45. beforeSelectRow: multiSelectHandler,
  46. // Other handlers/configuration
  47. });