easyUI datagrid点击行单选、按shift或Ctrl点击行多选

EasyUI DataGrid初始化方法中增加如下方法:

singleSelect:true, //只允许选中一行
onClickRow(index, row) {
    //-------------for TEST 结合SHIFT,CTRL,ALT键实现单选或多选----------------
    if (index != selectIndexs.firstSelectRowIndex && !inputFlags.isShiftDown) {
      selectIndexs.firstSelectRowIndex = index; //alert('firstSelectRowIndex, sfhit = ' + index);
    }
    if (inputFlags.isShiftDown) {
      $('#baseOrderList').datagrid('clearSelections');
      selectIndexs.lastSelectRowIndex = index;
      var tempIndex = 0;
      if (selectIndexs.firstSelectRowIndex > selectIndexs.lastSelectRowIndex) {
        tempIndex = selectIndexs.firstSelectRowIndex;
        selectIndexs.firstSelectRowIndex = selectIndexs.lastSelectRowIndex;
        selectIndexs.lastSelectRowIndex = tempIndex;
      }
      for (var i = selectIndexs.firstSelectRowIndex; i <= selectIndexs.lastSelectRowIndex; i++) {
        $('#baseOrderList').datagrid('selectRow', i);
      }
    }
    //-------------for TEST 结合SHIFT,CTRL,ALT键实现单选或多选----------------
  }

页面body标签上添加

onkeydown="javascript:keyPress(event);" onkeyup="javascript:keyRelease(event);"

最后在页面的script标签中中写入下述内容即可

//     结合SHIFT,CTRL,ALT键实现单选或多选
  //-------------------------------------------------------------------------------
  var KEY = {SHIFT: 16, CTRL: 17, ALT: 18, DOWN: 40, RIGHT: 39, UP: 38, LEFT: 37};
  var selectIndexs = {firstSelectRowIndex: 0, lastSelectRowIndex: 0};
  var inputFlags = {isShiftDown: false, isCtrlDown: false, isAltDown: false};

  function keyPress(event) {//响应键盘按下事件
    var e = event || window.event;
    var code = e.keyCode | e.which | e.charCode;
    switch (code) {
        /*case KEY.SHIFT:
          inputFlags.isShiftDown = true;
          $('#baseOrderList').datagrid('options').singleSelect = false;
          break;*/
      case KEY.CTRL:
        inputFlags.isCtrlDown = true;
        $('#baseOrderList').datagrid('options').singleSelect = false;
        break;
      case KEY.ALT:
        inputFlags.isAltDown = true;
        $('#baseOrderList').datagrid('options').singleSelect = false;
        break;
      default:
    }
  }

  function keyRelease(event) { //响应键盘按键放开的事件
    var e = event || window.event;
    var code = e.keyCode | e.which | e.charCode;
    switch (code) {
        /*case KEY.SHIFT:
          inputFlags.isShiftDown = false;
          selectIndexs.firstSelectRowIndex = 0;
          $('#baseOrderList').datagrid('options').singleSelect = true;
          break;*/
      case KEY.CTRL:
        inputFlags.isCtrlDown = false;
        selectIndexs.firstSelectRowIndex = 0;
        $('#baseOrderList').datagrid('options').singleSelect = true;
        break;
      case KEY.ALT:
        inputFlags.isAltDown = false;
        selectIndexs.firstSelectRowIndex = 0;
        $('#baseOrderList').datagrid('options').singleSelect = true;
        break;
      default:
    }
  }

转载自whm1234566777,原文链接:https://blog.csdn.net/whm18322394724/article/details/79277485

猜你喜欢

转载自blog.csdn.net/a1513049385/article/details/89381492