Kendo UI Grid - Добавить / Удалить фильтры динамически - PullRequest
0 голосов
/ 31 мая 2018

Мне нужно создать сетку интерфейса Kendo.Поскольку в нем много фильтров, мне нужно иметь 4 обычных фильтра, а остальные должны быть в состоянии добавлять динамически в соответствии с выбором пользователя.Может ли кто-нибудь оказать помощь в этом?

1 Ответ

0 голосов
/ 01 июня 2018

Для фильтрации по текстовому полю вы можете подключить событие keyUp, чтобы получить значение.Затем вы можете добавить это как фильтр к существующему объекту filter.

$('#NameOfInput').keyup(function () {
    var val = $('#NameOfInput').val();
    var grid = $("#yourGrid").data("kendoGrid");
    var filter = grid.dataSource.filter();
    filter.filters.push({
        field: "NameOfFieldYouWishToFilter",
        operator: "eq",
        value: val,
        FilterName: "UniqueIdentifierForFilter"
    });
    grid.dataSource.filter(filters);
});

Используя раскрывающийся список, вы можете достичь желаемой функциональности с помощью события onChange, получить значение с помощью $('#yourDropDown').val();.

FilterName - это дополнительный случайвам требуется дополнительная логика для добавления / удаления фильтров.то есть вы можете использовать это, чтобы определить, существует ли фильтр в массиве, и если это так, вы можете использовать splice, чтобы удалить его.

РЕДАКТИРОВАТЬ

Используя FilterName, вы можете найти, существует ли фильтр, и удалить его:

var filterIndex = filter.filters.map((e: any) => { return e.FilterName }).indexOf("UniqueIdentifierForFilter");
if (filterIndex > -1)
{
    filter.filters.splice(filterIndex, 1);
}
...