如何搜索一行,然后在jqGrid中选择它?

时间:2010-09-24 21:10:38

标签: jquery jqgrid

我有一个场景,我必须以编程方式在jqGrid中选择一行。

从函数中我将得到一个在jqGrid中可用的列的值,并且基于传入列的值,我必须在jqGrid中搜索,当它找到记录匹配时,我必须选择该行。

不确定如何使用jQuery为我的jqGrid实现这一目的。

更新

您提到的解决方案搜索第3列(不区分大小写)。我想知道有没有办法使用regext搜索网格中的任何列(包括隐藏的colums),即不区分大小写的搜索?

1 个答案:

答案 0 :(得分:5)

这个问题与我最近answered的另一个问题很接近。区别在于您要搜索选定的列。对于区分大小写的搜索,您可以使用以下代码

var index = 3;
var str = 'b';
$("#list > tbody > tr > td:nth-child("+index+"):contains('" + str + "')").parent();

对于不区分大小写的搜索,代码可能看起来像

var index = 3;
var str = 'b';
var cells = $("#list > tbody > tr > td:nth-child(3)").filter(function() {
                return re.test( $(this).text());
            });
var rows = cells.parent();

重要的是要考虑到jqGrid有时会在colModel中声明的列之前添加其他列。这是'rn'列包含行号。如果您使用jqGrid的rownumbers: true选项,则它存在。在使用选项multiselect: true时,还有带有复选框的“cb”列。您可以隐藏$('#list').jqGrid('hideCol', 'cb');的列,但您也应该在那里进行计算。通常,您应该计算所有隐藏的列。

您可以在以下小demo中查看所有内容。