我有一个场景,我必须以编程方式在jqGrid中选择一行。
从函数中我将得到一个在jqGrid中可用的列的值,并且基于传入列的值,我必须在jqGrid中搜索,当它找到记录匹配时,我必须选择该行。
不确定如何使用jQuery为我的jqGrid实现这一目的。
更新
您提到的解决方案搜索第3列(不区分大小写)。我想知道有没有办法使用regext搜索网格中的任何列(包括隐藏的colums),即不区分大小写的搜索?
答案 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中查看所有内容。