根据某些特定列值启用或禁用jqgrid中复选框的选择

时间:2015-11-20 07:54:01

标签: jquery jqgrid jqgrid-formatter

我有一个jqgrid,我想在那里选择有价值的行" Running"在代理状态列中。对于其余的状态,我不能选择该行。

JQGrid代码

 datatype: "json",
    contentType: 'application/json',
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
    colNames: ['Id', 'Machine Name', 'IP Address', 'Discovered Date', 'Agent Install Status', 'Agent Installation Date', 'Agent Status', 'Agent Version', 'Last HeartBeat Recieved'],
    colModel: [            
        { name: 'id', hidden: false, width: 15, key: true },
        { name: 'machineName', width: 120 },
        { name: 'ipAddress', width: 60 },
        { name: 'discoveredDate', width: 110, formatter: 'date', formatoptions: { srcformat: 'y-m-d', newformat: 'l, F d, Y' } },
        { name: 'agentInstallStatus', width: 70 },
        { name: 'agentInstallationDate', width: 110, formatter: 'date', formatoptions: { srcformat: 'y-m-d', newformat: 'l, F d, Y' } },
        { name: 'agentStatusName', width: 90 , edittype:'select', editoptions:{value:"Running"} },
        { name: 'agentVersion', width:50},
        { name: 'lastHeartBeatRecieved', width: 110, formatter: 'date', formatoptions: { srcformat: 'y-m-d', newformat: 'l, F d, Y' } }
    ],
    sortname: 'id',
    sortorder: 'asc',
    loadonce: true,
    viewrecords: true,
    gridview: true,      
    width: gwdth,
    height: 650,
    rowNum: 10,        
    rowList: [10, 20, 30],
    mtype: 'GET',
    multiselect: true,
    multipleSearch: true,
    pager: "#jqGridPager"
});

enter image description here

我是否可以仅显示运行状态的复选框?

我对这种环境完全陌生。

1 个答案:

答案 0 :(得分:2)

我看到了实现你的requiremens的两个主要选项:

  • 根据rowattr列的内容,使用"agentStatusName"回调禁用行。请参阅为the demo创建的the answer
  • 使用beforeSelectRow回调(以及onSelectAll)来阻止根据"agentStatusName"列的内容选择行。

首选是大多数简单而安全。第二个更灵活。可以允许编辑行(如果需要),但仍然阻止选择。