是否可以在安装了treeGrid的jqGrid中进行本地搜索

是否可以在安装了treeGrid的jqGrid中进行本地搜索,jqgrid,treegrid,Jqgrid,Treegrid,我将jqGrid与treeGrid一起使用。我添加了一个filterToolbar。我想在本地搜索,而不是服务器调用。例如,“当我们初始化网格并读取数据时,数据类型会自动设置为本地。”(这与TreeGrid有关) 因此,是否可以使用treeGrid实现本地搜索。我尝试了下面的配置,但导致服务器调用 我的配置是 var grid = $("#grid").jqGrid({ treeGrid: true, treeGridModel: 'adjacency', ExpandC

我将jqGrid与treeGrid一起使用。我添加了一个filterToolbar。我想在本地搜索,而不是服务器调用。例如,“当我们初始化网格并读取数据时,数据类型会自动设置为本地。”(这与TreeGrid有关)

因此,是否可以使用treeGrid实现本地搜索。我尝试了下面的配置,但导致服务器调用

我的配置是

var grid = $("#grid").jqGrid({
    treeGrid: true,
    treeGridModel: 'adjacency',
    ExpandColumn: 'businessAreaName',
    ExpandColClick : true,
    url:'agileProgramme/records.do',
    datatype: 'json',
    mtype: 'GET',
    colNames:['Id'
              , 'Business Area'
              , 'Investment'
              , 'Org'
              , 'Goal'
    ],
    colModel:[
/*00*/          {name:'agileProgrammeId',index:'agileProgrammeId', width:0, editable:false,hidden:true},
/*01*/          {name:'businessAreaName',index:'businessAreaName', width:160, editable:false},
/*02*/          {name:'programmeName',index:'programmeName', width:150, editable:false, classes:'link'},
/*03*/          {name:'org',index:'org', width:50, editable:false, classes:'orgHierarchy', sortable : false},
/*04*/          {name:'goal',index:'goal', width:70, editable:false}
    ],
    treeReader : {
        level_field: "level",
        parent_id_field: "parent", 
        leaf_field: "leaf",
        expanded_field: "expanded"
    },
    autowidth: true,
    height: 240,
    pager: '#pager',
    sortname: 'id',
    sortorder: "asc",
    toolbar:[true,"top"],
    caption:"TableGridDemo",
    emptyrecords: "Empty records",
    jsonReader : {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        repeatitems: false,
        cell: "cell",
        id: "agileProgrammeId"
    }
});   
和实现搜索工具栏

$('#grid').jqGrid('filterToolbar', {stringResult: true,searchOnEnter : true});

如果可能的话,我们将非常感谢您的帮助或任何提示?

TreeGrid筛选中最大的问题是,应用筛选后,不清楚TreeGrid中应该显示什么。将过滤器应用于网格的标准行为包括删除所有未过滤的行。如果是TreeGrid,这种行为将是错误的。在最后一个问题之前,我试图解释这个问题

我们可以尝试实现的是只对过滤行进行某种高亮显示(这是一个想法),或者可以将一些CSS类设置为非过滤行,使其变为灰色(如禁用)。无论如何,必须以某种方式显示筛选行的父行。还有一个选项是不以树形形式显示过滤后的TreeGrid。例如,On可以显示一个附加列,其中包含过滤行和其余行数据的路径

更新:我所说的“显示筛选行的父行”是指以下内容。让我们来看看下面这棵树

+root             123
    +testchild1    32
        test1       4
    +child2        30
        test2       7
我们过滤文本“test”的第一列。在这种情况下,仅显示包含文本“test”的行是错误的

但在某些情况下,if将足以显示上面的行以及根元素之前的完整路径:

root\testchild1          32
root\testchild1\test1     4
root\testchild1\test2     7
在这种情况下,信息将显示在网格中,而不是显示在TreeGrid中


在其他情况下,在树叶中搜索只能有意义。在这种情况下,确实可以在TreeGrid表单中显示结果,但这不是常见的情况。

Oleg,我不清楚您的最后一个选项,“例如,可以显示一个附加列,其中包含过滤行和其余行数据的路径。”@Nehu:我的意思是:如果你想在Windows资源管理器或Total Committer中搜索文本,你会在结果窗口中看到找到的文件的完整路径。您可以尝试生成一个网格,该网格将所有父项的名称除以“/”。我不知道您在TreeGrid中显示的是哪种信息,但是以某种形式显示项目的路径可以解决我描述的问题。我会在我的答案中贴一个例子。@Nehu:我更新了我的答案。您是否考虑过,如果您使用TreeGrid,TreeGrid过滤的最佳结果是什么?Oleg,非常感谢您的澄清。这是个好主意。但是,对于我当前的场景,我仍然在分析什么是最好的过滤方式。@Nehu:就像我之前写的那样,理解什么是最好的(在指定的场景中)作为过滤结果显示是我们必须首先明确的。
root\testchild1          32
root\testchild1\test1     4
root\testchild1\test2     7