对于jqgrid中的特定行,禁用“multiselect:true”模式中的复选框

时间:2009-08-31 11:23:36

标签: jquery

我在jqgrid中显示一些数据,我使用的选项是“multiselect:true”。在网格中,对于特定的行,我希望复选框不显示或者如果显示,则应该禁用它。我可以这样做吗??我正在使用jqgrid3.5.2。

提前致谢。

4 个答案:

答案 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");