#javascript #jquery #kendo-ui #kendo-grid #kendo-asp.net-mvc
Вопрос:
В моей сетке у меня есть FromDate
поле , отформатированное как MM/yyyy
, а в сетке источника данных FromDate
значение находится в MM/dd/yyyy
формате. Дата всегда является первым днем месяца, поэтому я использовал код jQuery, чтобы установить значение даты на первый день месяца, если пользователь выбирает любую дату с помощью календаря с сетчатым фильтром или средства выбора даты.
Например, если пользователь выбирает или вводит вручную 11/25/2020
с помощью средства выбора даты или клавиатуры, приведенный ниже код jQuery устанавливает дату на первый день как 11/1/2020
, что работает нормально. Но проблема в том, что если пользователь вводит или вводит дату вручную в MM/yyyy
формате или, скажем, вводит 11/2020
, то ничего не происходит.
как я могу ввести значение в поле ввода фильтра даты сетки kendo, чтобы применить ту же логику, что и ниже?
if (e.filter.filters[0].field === "FromDate" ) {
var fromDate = e.filter.filters[0].value
var month = fromDate.getMonth();
var year = fromDate.getFullYear();
var firstDateOfTheMonth = new Date(year, month 1);
var lastDay = firstDateOfTheMonth.getDate();
fromDate.setDate(lastDay);
console.log(e.filter.filters[0]);
var formattedFromDate = moment(fromDate).format('MM/DD/YYYY');
var productsGrid= $("#ProductsGrid").data("kendoGrid");
productsGrid.dataSource.filter({
field: e.filter.filters[0].field,
operator: e.filter.filters[0].operator,
value: formattedFromDate
});
}
Комментарии:
1. Привет, ты можешь сделать это работающим ?
Ответ №1:
Используйте событие изменения datepicker для запуска вашей функции
$("#datepicker").kendoDatePicker({
change: function() {
var value = this.value();
// logic here
}
});
Ответ №2:
я исправил проблему с смайликом этим в сетке
->parameterMap('function(options, operation) {
if (options.hasOwnProperty("filter")){
//console.log(options.filter.filters);
var filtre=options.filter.filters;
for(i=0;i<filtre.length;i ){
//console.log(filtre[i].field);
if(filtre[i].field=="date"){
filtre[i].value=kendo.toString(filtre[i].value,"yyyy-MM-dd");
// console.log(kendo.toString(filtre[i].value,"yyyy-MM-dd"));
}
}
}
return kendo.stringify(options);
}'
);