【问题标题】:How to search for a row and then select it in jqGrid?如何在jqGrid中搜索一行然后选择它?
【发布时间】:2010-09-24 21:10:38
【问题描述】:

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

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

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

更新:

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

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    这个问题与我最近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看到全部直播。

    【讨论】:

    • 有什么方法可以搜索并获得完全匹配?不只是包含?!
    • 您也可以使用filter 进行精确匹配。
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多