当我将multiselect: true
添加到我的jqgrid时,我看到jqgrid为每一行添加了一个复选框。显示的每个复选框都是未选中的。有没有办法根据我用来填充网格的数据预设这些复选框?例如,如果我的网格有一个名为 selected 的列,而我正在显示的行的选择值 1 ,我想显示该复选框行被检查。如果某行的所选字段为 0 ,我希望将该复选框保持为未选中状态。这可能吗?
答案 0 :(得分:1)
你问题的答案取决于你使用的jqGrid的分支。我开发了免费的jqGrid fork并实现了multiPageSelection: true
选项。只需要填充selarrrow
数组(例如,您可以根据服务器返回的数据在beforeProcessing
内部)。查看为the demo创建的the answer。它显示selarrrow
数组包含的ID与当前页面相同。在分页或初始填充期间,免费jqGrid 根据selarrrow
数组设置chechboxes 的状态。它的工作方式非常有效,如自定义格式化程序,rowattr
或cellattr
。
如果您无法升级到免费的jqGrid,则可以在setSelection
内拨打loadComplete
(请参阅the old answer)。 1}}在使用multiPageSelection: true
时效果会更慢,但效果会很好。
答案 1 :(得分:1)
在loadComplete
中,有类似的内容
var i;
var rowids = $('#myTable').jqGrid('getDataIDs');
for (i = 0;i < count = rowids.length;i+=1) {
// condition to mark it check
$('#myTable').jqGrid('setSelection', rowids[i], false);
}
干杯!
答案 2 :(得分:0)
您需要循环访问数据并应用检查。