2014-07-08 115 views
0

我有一个kendo网格和一个html下拉菜单。当我将下拉菜单配置为单选时,我可以使用下拉列表中所选项目的字符串值成功筛选剑道网格。筛选kendo网格与多选下拉

这里的过滤代码,工作时的下拉是一个选择:

$("#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} 
    ]} 
}); 

但是,一旦我改变下拉到多选择,滤镜只能由第一选择滤波器。当多重选择具有多个选择时,该值是以字符串格式的数组。如何从下拉菜单中选择多个网格?

回答

0

下面是使用多选择要应用过滤器的代码:

$("#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) 
        }; 
       }) 
      } 
      ]) 
     }); 

上面的代码将创建的筛选器列表的多选选择值数组中的所有值。

如果您的要求与上述解决方案不同,请告诉我。

+0

当我尝试这个时,我收到“Uncaught TypeError:undefined不是函数”。 –

+0

如果Freight参数是整数,那么您将需要将该值转换为整数以进行比较,如下所示:“value:parseInt(value)”请参阅Edit。另外请确保您有一个条件来验证在应用过滤器之前多选具有任何值。 –