2010-09-24 70 views
1

我有一个场景,我必须以编程方式在jqGrid中选择一行。如何搜索一个行,然后在jqGrid中选择它?

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

不知道如何实现这个使用jQuery为我的jqGrid。

更新:

您提到的解决方案搜索第3列(不区分大小写)。我想知道是否有任何方法使用正则表达式搜索网格中的任何列(包括隐藏的列)以及不区分大小写的搜索?

回答

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

+0

有什么方法可以搜索并获得完全匹配?不只是包含?! – AminSaghi 2013-06-06 10:45:01

+0

您也可以使用'filter'进行精确匹配。 – Oleg 2013-06-06 12:32:53

相关问题