我正在使用带有多选的jqGrid。这有效,但我有副作用,我想摆脱。每当有人点击一行时,该复选框也会改变其检查状态。我想把它留下来。
我试过了:
onSelectRow: function(row) { return false; }
并设置
beforeSelectRow: function(rowid, e) { return true; },
如果我将其设置为false,我会得到所需的行为,但之后我也无法通过
获得任何选定的IDjqGrid('getGridParam', 'selarrrow');
任何人都有想法解决这个问题吗?
答案 0 :(得分:8)
$("#Grid_ID").jqGrid('hideCol', 'cb');
在gridComplete函数
上添加上面的代码行答案 1 :(得分:2)
我有一个案例,我通过选择单元格触发了一系列操作,但我不希望选择该行。
我检查onCellSelect函数中的列号,并为第一个选择列以外的列切换复选框选择
if (iCol > 1) {
$(grid).jqGrid('setSelection', rowid, false);
}
答案 2 :(得分: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');
},
答案 3 :(得分:1)
我尝试了awattar的方法,但发现srcElement未定义。我改用了这个:
beforeSelectRow: function(rowid, e){
var td = e.target;
var index = $.jgrid.getCellIndex(td);
if(index == 1){
return true;
}
return false;
},
答案 4 :(得分:1)
添加init方法
<ClientSideEvents GridInitialized="grdInit">
function grdInit()
{
var myGrid = $("#myGrid");
myGrid.jqGrid('hideCol', 'cb');
}
答案 5 :(得分:0)
我能够通过检查提供给onSelect事件处理程序的列ID来实现这一点。如果它是除第一列之外的任何列,则返回false。我必须在几个事件处理程序中执行此操作才能获得首选行为。
答案 6 :(得分:0)
beforeSelectRow: function(rowid, e){
if(e.srcElement.type == "checkbox"){
return true;
}
return false;
},
答案 7 :(得分:0)
尝试以下一项。下面的代码帮助我重新解决了这个问题。借助于此,你无法点击网格。
beforeSelectRow: function(rowid, e) {
return false;
}
答案 8 :(得分:-1)
jqGrid旨在以这种方式工作;你有充分的理由不想显示复选框吗?