Javascript 使用multiselect下拉列表筛选剑道网格

Javascript 使用multiselect下拉列表筛选剑道网格,javascript,jquery,html,drop-down-menu,kendo-ui,Javascript,Jquery,Html,Drop Down Menu,Kendo Ui,我有一个剑道网格和一个html下拉列表。当我将下拉列表配置为单选时,我能够使用下拉列表中所选项目的字符串值成功过滤剑道网格 以下是下拉列表为单选时的过滤代码: $("#LocationListDropDown").on("change", function(e) { var ds = $("#grid").data("kendoGrid").dataSource; var dropdownVal = $(this).val(); ds.filter([ {"logic":"and",

我有一个剑道网格和一个html下拉列表。当我将下拉列表配置为单选时,我能够使用下拉列表中所选项目的字符串值成功过滤剑道网格

以下是下拉列表为单选时的过滤代码:

$("#LocationListDropDown").on("change", function(e) {
var ds = $("#grid").data("kendoGrid").dataSource;
var dropdownVal = $(this).val();
ds.filter([
    {"logic":"and",
     "filters":[
         {
            "field":"Freight",
            "operator":"eq",
            "value": dropdownVal}
     ]}
});

但是,一旦我将该下拉列表更改为多选,过滤器将仅按第一个选择进行过滤。当“多重选择”有多个选择时,该值采用字符串数组格式。如何使用下拉列表中的多项选择筛选网格?

以下是使用多项选择应用筛选的代码:

  $("#LocationListDropDown").on("change", function(e) {
        var ds = $("#grid").data("kendoGrid").dataSource;
        var dropdownVal = $(this)..value();
        ds.filter([
            {"logic":"or", //applying "or" will get result for all multi-select values
                "filters":$.map(dropdownVal, function (valueLst) {
                    return {
                        field: "Freight",
                        operator: "eq",
                        value: parseInt(valueLst)
                    };
                })
            }
            ])
        });
上述代码将为多选选择值数组中的所有值创建过滤器列表


请告诉我您的要求是否与上述解决方案不同。

尝试此操作时,我得到了“Uncaught TypeError:undefined is not a function”。如果运费参数为整数,则需要将值转换为整数进行比较,如:“value:parseInt(value)”请参见编辑。在应用过滤器之前,还要确保您有一个条件来验证multi-select是否有任何选定值。