禁用现有jqgrid中的行选择

时间:2016-07-31 13:11:08

标签: jquery jqgrid

我正在使用jqgrid版本4.4.4,我有一个现有的填充jqgrid表,我想在用户在外部下拉菜单中选择一个特定值时禁用一行。
image

enter image description here

例如,如图所示,如果用户选择值1,我希望表中包含的具有不同ID(0和2)的所有行都变得不可选。以同样的方式选择0值时,第1行和第2行将被取消选择,依此类推。

我想在不使用gridUnload方法的情况下执行此操作。

现在我已经找到了禁用输入按钮的方法,但是用户仍然可以按下该行并选择该值。

有什么想法吗?

提前谢谢

1 个答案:

答案 0 :(得分:0)

jqGrid允许您定义beforeSelectRow回调,在选择新行之前将其称为。回调将当前选择行的rowid作为参数。回调可以先获取外部下拉列表中所选项目的值,然后根据所选值和选择行的true返回falserowid。通过这种方式,您可以实现您的要求。

此外,您可以使用getGridParam方法和参数"selarrrow"来获取包含所有当前所选行的rowid列表的数组。您可以在用户更改外部下拉列表中的选择后更改jqGrid上的当前选择。您可以使用setSelection方法切换特定行的选择。

您可以实现额外的onSelectAll回调,如果用户单击multiselect列的列标题以选择或取消选择所有行,则将调用该回调。您可以切换某些行的选择以保存您要遵循的规则。

我建议您考虑使用jqGrid的height: "auto"选项来改善网格的外观。另外,我建议您从复古版4.4.4升级到free jqGrid 4.13.4。您可以直接从CDN使用if(请参阅the wiki)或从NuGetnpmbowerMaven Central下载。版本4.4.4已经失效,并且不再受支持。