Javascript 使用multiselect下拉列表筛选剑道网格
我有一个剑道网格和一个html下拉列表。当我将下拉列表配置为单选时,我能够使用下拉列表中所选项目的字符串值成功过滤剑道网格 以下是下拉列表为单选时的过滤代码: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",
$("#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是否有任何选定值。