2010-01-06 84 views
2

我正在使用一个jqGrid与multiselect穿上。这有效,但我有一个副作用,我想摆脱。每当有人点击一行时,复选框也会改变它的检查状态。我想离开这一点。jqGrid与多选择,如何关闭复选框检查当选中行时

我尝试这样做:

onSelectRow: function(row) { return false; } 

和设置

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

如果我设置为false,我获得所需的行为,但后来我也不要通过

得到任何选择的ID的了
jqGrid('getGridParam', 'selarrrow'); 

任何人有想法解决这个问题吗?

+0

重复的查询,请参阅我的答案[这里](https://stackoverflow.com/a/47758337/8743891) – 2017-12-11 17:53:29

回答

0

jqGrid旨在以这种方式工作;你是否有充分的理由不想显示复选框?

+0

我已经怕的就是这个。可用性团队确信这不是正确的行为,并希望以其他方式。 – XIII 2010-01-07 08:52:03

7
$("#Grid_ID").jqGrid('hideCol', 'cb'); 

添加上面的代码行中gridComplete功能通过检查提供给ONSELECT事件处理程序列ID

+0

这适用于我! – Losbear 2013-08-12 21:58:19

+0

我不会用这个新的jqgrid工作,但它已经7岁了,所以你可以保留你的观点。 – catbadger 2017-11-03 16:44:35

0

我能够完成。如果它不是第一列,则返回false。为了获得首选的行为,我必须在几个事件处理程序中执行此操作。

2

我有一个案例,我有一堆行动是由选择单元格触发的,我不希望行被选中。

我检查的onCellSelect功能列数和切换复选框选择回比第一选择列

if (iCol > 1) { 
    $(grid).jqGrid('setSelection', rowid, false); 
} 
0
beforeSelectRow: function(rowid, e){ 
    if(e.srcElement.type == "checkbox"){ 
    return true; 
    } 
    return false; 
    }, 
1

我试图awattar的做法却发现srcElement是不确定等栏目。我用这个来代替:

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

附加init方法

<ClientSideEvents GridInitialized="grdInit"> 

    function grdInit() 
    { 
    var myGrid = $("#myGrid"); 
    myGrid.jqGrid('hideCol', 'cb'); 
    } 
2
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'); 
}, 
0

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

beforeSelectRow: function(rowid, e) { 
     return false; 
    } 
相关问题