根据某些特定的列值启用或禁用 jqgrid 中复选框的选择
Enable or Disable selection of a Check Box in jqgrid depending on some specific column value
我有一个 jqgrid,我想在其中 select 代理状态列中具有值 "Running" 的行。对于其余状态,我应该无法 select 该行。
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"
});
是否可以只显示 运行 状态的复选框?
我对这个环境完全陌生。
我看到两个主要选项来实现您的要求:
- 使用
rowattr
回调 禁用 基于 "agentStatusName"
列内容的行。参见 the demo created for the answer。
- 使用
beforeSelectRow
回调(以及 onSelectAll
也是)防止根据 "agentStatusName"
列的内容选择行。
首选最简单安全。第二个更灵活。可以允许编辑行(如果需要),但仍然阻止选择。
我有一个 jqgrid,我想在其中 select 代理状态列中具有值 "Running" 的行。对于其余状态,我应该无法 select 该行。
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"
});
是否可以只显示 运行 状态的复选框?
我对这个环境完全陌生。
我看到两个主要选项来实现您的要求:
- 使用
rowattr
回调 禁用 基于"agentStatusName"
列内容的行。参见 the demo created for the answer。 - 使用
beforeSelectRow
回调(以及onSelectAll
也是)防止根据"agentStatusName"
列的内容选择行。
首选最简单安全。第二个更灵活。可以允许编辑行(如果需要),但仍然阻止选择。