2016-07-31 41 views
-1

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

enter image description here

例如,作为图像显示,如果用户选择相应的值1我想具有不同ID的所有行(0和2)包含在表变成不可选择。以相同的方式选择0值时,第1行和第2行将被取消选中,依此类推。

我想这样做,而不使用gridUnload方法。

现在我已经找到了禁用输入按钮的方法,但是用户无论如何都可以推动行并选择值。

任何想法?

预先感谢您

+1

你必须更准确地描述你的问题。你目前写的是“改变一些属性”。你在“属性”下的含义是什么?你的意思是jqGrid的选项?一些选项可以动态更改,另一个不可更改。因此,您应该明确指出您需要实施的内容。另一个例子:你写关于“下拉菜单”。你的意思是一些*外部菜单* jqGrid之外,或者你的意思是从过滤器工具栏或编辑字段(在使用内联编辑,单元格编辑或表单编辑的情况下)或jqGrid的搜索对话框的字段下拉? – Oleg

+0

包含您使用的JavaScript代码或某些图片将会很有帮助。 – Oleg

+0

感谢您的回答。我重写了帖子... – Cyr

回答

0

的jqGrid允许您定义beforeSelectRow回调,这将被称为新行会被选中之前。回调获取当前选中行的rowid作为参数。回调可以首先在外部下拉菜单中获取所选项目的值,然后根据选定的值返回truefalse,并根据选择的行返回rowid。通过这种方式你可以实现你的需求。

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

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

我建议你考虑使用jgGrid的height: "auto"选项来改善网格的外观。此外,我建议您从复古版本4.4.4升级到free jqGrid 4.13.4。您可以直接使用从CDN(请参阅the wiki)或从NuGetnpm,bower或从Maven Central下载。 4.4.4版本已经死了,并没有更多的支持。