如何在 Kendo 网格中过滤已过滤的数据源

How to filter already filtered datasource in Kendo grid

在我的应用程序中,我正在使用 kendo 网格并使用 kendoDropDownList 来过滤数据源,如下所示,

<div class="pull-right">
    <label>Select Value</label>
    <select class="form-control" id="selectGroup">
        <option selected="selected">Group A</option>
        <option>Group B</option>
        <option>All</option>
    </select>   
</div>

我如何调用 JS

$('#selectGroup').kendoDropDownList({
    autoBind: false,
    change: function (e) {
        var grid = $('#allUsersGrid').data('kendoGrid');
        var field = 'Group';
        var operator = 'eq';
        var value = e.sender.value();

        if (value == "Group A" || value == "Group A") {
            value = e.sender.value() == "Group A" ? true : false;
             grid.dataSource.filter({
                field: field,
                operator: operator,
                value: value
            });
        } else {
             grid.dataSource.filter([]);
        }
    }   
});

上面的代码工作正常,现在我需要从上面的 filtered 结果中搜索值。我该怎么做?

我写的搜索功能如下

function SearchProductServices() {
    var grid = $("#allUsersGrid").data("kendoGrid");
    var field = 'MemberName';
    var operator = 'contains';
    var value = $("#txtSearchSearch").val();
    grid.dataSource.filter({
        field: field,
        operator: operator,
        value: value
    });
}

但是上面的函数是从整个网格中搜索值。但我需要从过滤后的网格中搜索值。我该怎么做

您可以发送一个对象数组来保留当前过滤器并在您的第二个函数中添加一个新过滤器。

grid.dataSource.filter({
      "filters": [
        {
          "field": field,
          "operator": operator,
          "value": value
        },
        {
          "field": field2,
          "operator": operator2,
          "value": value2
        }
      ],
      "logic": "and"
    })

一些文档:https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/configuration/filter