我在jqgrid中显示一些数据,我使用的选项是“multiselect:true”。在网格中,对于特定的行,我希望复选框不显示或者如果显示,则应该禁用它。我可以这样做吗??我正在使用jqgrid3.5.2。
提前致谢。
答案 0 :(得分:7)
试试这个:
loadComplete: function() {
var ids =jQuery("#TableId").jqGrid('getDataIDs');
for(var i=0;i < ids.length;i++){
var rowId = ids[i];
var Status = jQuery("#TableId").jqGrid('getCell',ids[i],'Status');
if(condition matches){
jQuery("#jqg_TableId_"+rowId).attr("disabled", true);
}
}
}
要避免在禁用行的任何位置单击行选择:
beforeSelectRow: function(rowid, e) {
if( $("#jqg_TableId_"+rowid).attr("disabled") ){
return false;
}
return true;
}
答案 1 :(得分:2)
只需使用“hideCol”方法隐藏组合框列:
$("#mygridSelector").jqGrid({
//myGridOptions...
}).hideCol('cb');
答案 2 :(得分:1)
此代码在我的应用程序中运行正常,请尝试自己..
以下代码非常简单易懂
gridComplete: function() //when first time load data
{
if(consignNo != "") //this is my condition when my check box is disable when load data
{
$("#jqg_batchList_" + ids[i]).attr("disabled", true);
}
},
beforeSelectRow: function(rowid, e) //this function is used when you select rows
{
//means when your check box is disabled,you can't check your check box
if( $("#jqg_batchList_"+rowid).attr("disabled") )
{
return false;
}
return true;
},
onSelectAll: function(aRowids,status) // this function is used when you select all check box
{
if (status)
{
for(var i=0;i<aRowids.length;i++)
{
if( $("#jqg_batchList_"+aRowids[i]).attr("disabled"))
{
$("#jqg_batchList_" + aRowids[i]).removeAttr("checked");
}
}
}
},
//added by Najarhasan hasnutech@gmail.com just copy code and put your jqgrid code
答案 3 :(得分:0)
每个复选框都有唯一的ID,即
的组合“jpg”+ rowid - 其中rowid是行的id。
您可以使用以下代码使其不可见
$("#jqg_Q391")..css("visibility", "hidden");