отфильтровать источник данных с помощью мультиселекции Kendo - PullRequest
0 голосов
/ 10 мая 2019

У меня есть сетка и мультиселектор, я хочу фильтровать сетку по мультиселекту в соответствии с тем, что я выбираю, и когда я выбираю, сетка должна фильтроваться соответствующим образом, вот моя сетка:

 $("#grid").kendoGrid({                   
                dataSource: ds2,                   
                height: 550,                  
                sortable: true,
                pageable: {
                    refresh: true,
                    pageSizes: true,
                    buttonCount: 5
                },          
                  columns: [
                       { field: "name",
                         title: "Name",width:"50px"},
                       { field: "Description",
                       title: "Description", width: "80px"
                       },
                       { field: "WindSpeed",
                       title: "Wind Speed", width: "40px"
                       },
                       { field: "RPM",
                       title: "RPM", width: "40px"
                       },
                       { field: "Power",
                       title: "Power", width: "40px"
                       }
                      ]
            });

данные, которые связывают источник данных:

 var ds1 = new kendo.data.DataSource({
                data: rsturn_f.EventNames
            });

   var ds2 = new kendo.data.DataSource({
                data: rsturn_f.Data
            });

и вот мульти выбор:

 $("#evnts").kendoMultiSelect({
                placeholder: "Select products...",
                dataTextField: "Nme",
                dataValueField: "Nme",
                //autoBind: false,
                select: onSelect,
                deselect: onDeselect,
                dataSource: ds1

            });

по выбору я делаю это:

 function onSelect(e) {

                ds2.filter({ field: "Description", operator: "startswith", value: e.dataItem });
 }

Теперь, если я хочу отфильтровать по нескольким значениям и отфильтровать, удалив значения из множественного выбора, я не знаю, что мне делать, любая идея?

1 Ответ

1 голос
/ 10 мая 2019

Вы должны использовать событие изменения Multiselect. Вы можете напрямую использовать функцию в атрибуте операции, который передается в API фильтра источника данных.

 function onChange(e) {
     ds2.filter({ field: "Description", value: this.value(), 
          operator: function(currentValue, filterValues){
               if(filterValues.length===0){
                  return true;
               }

                   if(filterValues.indexOf(currentValue)!==-1){
                      return true;
                   } 

               return false;
       }
 });

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...