В настоящее время я пытаюсь фильтровать Kendo DataSource с помощью Kendo DropDownList, и он не работает так, как я ожидал.Фильтр Kendo DataSource по дате
У меня есть Kendo DropDownList, который имеет несколько параметров в нем, которые позволяют пользователю фильтровать DataSource на 1, 3, 6, 9 или 12 месяцев. Я также использую moment.js
, чтобы обрабатывать добавление месяцев к текущей дате.
Вот мой DropDownList onChange
событие:
onMonthRangeChange: function (e) {
var value = e.sender.value();
switch (value) {
case "1":
var oneMonth = moment().add(1, "month");
var firstOfMonth = moment().startOf("month");
viewModel.myTaskDataSource.query({
logic: "and",
filters: [
{ field: "DueDate", operator: "gte", value: firstOfMonth },
{ field: "DueDate", operator: "lte", value: oneMonth }
});
break;
case "3":
// similar to above code except for 3 months
case "6":
// similar to above code except for 6 months
case "9":
// similar to above code except for 9 months
case "12":
// similar to above code except for 12 month
}
})
Хотя я думал, что это будет работать, это не так. Вместо этого он просто показывает все в DataSource. Я даже попытался изменить viewModel.myTaskDataSource.query
к viewModel.myTaskDataSource.filter
, но потом я просто получаю следующее сообщение об ошибке:
Uncaught TypeError: e.indexOf is not a function - kendo.all.js:1129
Я подозревал, что, возможно, это потому, что кэндо и moment.js используют различные форматы время, но даже после разбора всех дат кендо к моментальным датам я получаю те же ошибки.