2016-09-26 172 views
1

当我将multiselect: true添加到我的jqgrid时,我看到jqgrid为每行添加了一个复选框。显示的每个复选框均未选中。有没有一种方法可以根据我用来填充网格的数据预设这些复选框?例如,如果我的网格有一个名为的列被选中,并且我正在显示的一行有一个选定的值,我想显示该行的复选框被选中。当一行的选择字段是,我想保持该复选框未选中状态。这可能吗?jqgrid:多选复选框值

回答

1

您问题的答案取决于您使用的jqGrid的分支。我开发免费的jqGrid fork并实现了multiPageSelection: true选项。一个需要填写selarrrow数组(您可以根据从服务器返回的数据在beforeProcessing内执行此操作)。看看为the answer创建的the demo。它显示selarrrow数组包含更多的id在当前页面上。在分页或初始填写时,jqGrid 根据selarrrow阵列设置了chechboxes的状态。它的工作方式像自定义格式化程序一样有效,如rowattrcellattr

如果你不能升级到免费的jqGrid,那么你可以拨打setSelectionloadComplete(见the old answer)。它的运行速度会比使用multiPageSelection: true时慢,但它会起作用。

0

您将需要遍历数据并应用检查。

+0

我很好奇我会怎么做,因为jqgrid在飞行中添加的“cb”列不是我定义的列模型的一部分。 –

+0

是的,您需要在列生成后执行此操作。基于为所有复选框生成的索引ID – Yogesh

+0

如何知道何时生成列? –

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); 
} 

干杯!