free-jqgrid如何将过滤器应用于主网格和子网格

时间:2016-09-08 13:57:34

标签: filtering free-jqgrid subgrid

我正在使用free-jqgrid 4.13.1。在我的网格中,每行下面都有子网格,所以我有一个嵌套行的场景。但是,网格顶部的过滤器仅适用于主网格并忽略子网格。如何使网格顶部的过滤器也适用于所有子网格?我假设我需要对postData做一些事情,但我还是jqGrid的新手。

我知道我可以将过滤器工具栏添加到子网格中,但从UX的角度来看,这不是一个可接受的解决方案。用户应该能够从单个(主)过滤器工具栏中搜索主网格和所有子网格的所有字段。

主网格和子网格的colModel属性相同,显示如下。

var mainGridPrefix = "s_";

colModel: [
      { name: 'active', index: 'active' }
    , { name: 'lastContact', index: 'lastContact', sorttype: 'date', formatter: 'date', formatoptions: { newformat: "m/d/Y" } }
    , { name: 'nextContact', index: 'nextContact', sorttype: 'date', formatter: 'date', formatoptions: { newformat: "m/d/Y" } }
]
, idPrefix: mainGridPrefix
, subGrid: true
, subGridRowExpanded: function (subgridDivId, rowId) {
    var $subgrid = $("<table id='" + subgridDivId + "_t'></table>"),
        pureRowId = $.jgrid.stripPref(mainGridPrefix, rowId),
        colModel = $(this).jqGrid("getGridParam", "colModel");

    $subgrid.appendTo("#" + $.jgrid.jqID(subgridDivId));
    $subgrid.jqGrid({
        datatype: "local"
        , data: $(this).jqGrid("getLocalRow", pureRowId).subgridData
        , colModel: [
      { name: 'active', index: 'active' }
    , { name: 'lastContact', index: 'lastContact', sorttype: 'date', formatter: 'date', formatoptions: { newformat: "m/d/Y" } }
    , { name: 'nextContact', index: 'nextContact', sorttype: 'date', formatter: 'date', formatoptions: { newformat: "m/d/Y" } }
        ]
        , height: "100%"
        , rowNum: 10000
        , autoencode: true
        , gridview: true
        , idPrefix: rowId + "_"
        , width: $("#tableId").width() - 25
    });
    $subgrid.closest("div.ui-jqgrid-view").children("div.ui-jqgrid-hdiv").hide();
}

0 个答案:

没有答案