代码之家  ›  专栏  ›  技术社区  ›  Kris van der Mast

jqgrid打开multisect,如何关闭复选框选中行时检查

  •  3
  • Kris van der Mast  · 技术社区  · 15 年前

    我使用的是一个jqgrid和multisect。这是可行的,但我有一个副作用,我想摆脱它。每当有人单击一行时,复选框也会改变其选中状态。我不想再提这个了。

    我试过这个:

    onSelectRow: function(row) { return false; }
    

    设置

    beforeSelectRow: function(rowid, e) { return true; },
    

    如果我将此设置为“假”,我将获得所需的行为,但也不会再通过

    jqGrid('getGridParam', 'selarrrow');
    

    有人有办法解决这个问题吗?

    9 回复  |  直到 7 年前
        1
  •  -1
  •   Justin Ethier    15 年前

    jqgrid就是这样设计的;您是否有充分的理由不想显示复选框?

        2
  •  8
  •   sth    15 年前
    $("#Grid_ID").jqGrid('hideCol', 'cb');
    

    在GridComplete函数的代码行上方添加

        3
  •  2
  •   Justin Moore Son Dang    14 年前

    我有一个案例,我有一堆操作是由选择单元格触发的,我不想选择行。

    我检查oncellselect函数中的列号,并为第一个select列以外的列切换回复选框选择。

    if (iCol > 1) {
        $(grid).jqGrid('setSelection', rowid, false);
    }
    
        4
  •  2
  •   Kris van der Mast    12 年前
    beforeSelectRow: function (rowid, e)        
    {
        var $myGrid = $(this),
        i = $.jgrid.getCellIndex($(e.target).closest('td')[0]),
        cm = $myGrid.jqGrid('getGridParam', 'colModel');
        return (cm[i].name === 'cb');
    },
    
        5
  •  1
  •   Bob    13 年前

    我试过阿瓦塔的方法,但发现srcElement没有定义。我用这个来代替:

        beforeSelectRow: function(rowid, e){ 
          var td = e.target;
          var index = $.jgrid.getCellIndex(td);
          if(index == 1){ 
            return true; 
          }
          return false; 
        },
    
        6
  •  1
  •   Mio    13 年前

    添加初始化方法

      <ClientSideEvents GridInitialized="grdInit">
    
      function grdInit()
      { 
        var myGrid = $("#myGrid"); 
        myGrid.jqGrid('hideCol', 'cb');
      }
    
        7
  •  0
  •   Rakesh Malik    14 年前

    我可以通过检查提供给onselect事件处理程序的列ID来实现这一点。如果它不是第一列,则返回false。为了获得首选的行为,我必须在几个事件处理程序中进行。

        8
  •  0
  •   Lloyd Powell binku    12 年前
        beforeSelectRow: function(rowid, e){
        if(e.srcElement.type == "checkbox"){
         return true;
        }
        return false;
       },
    
        9
  •  0
  •   Pravin    7 年前

    尝试下面一个。下面的代码帮助我重新处理这个问题。在这个帮助下,你不能点击到网格上。

    beforeSelectRow: function(rowid, e) {
            return false;
        }