kendoDatasource に次の requestStart があります。
requestStart: function (e) {
var oldFilters = e.sender._filter ? e.sender._filter.filters : [],
endDateTime;
$.each(oldFilters, function (index, currFilter) {
if (currFilter.field === 'StatusChangeDate' && currFilter.operator == 'eq') {
endDateTime = new Date(currFilter.value.getYear(), currFilter.value.getMonth(), currFilter.value.getDay(), 23, 59, 59);
oldFilters.push({ field: currFilter.field, operator: 'gt', value: currFilter.value });
oldFilters.push({ field: currFilter.field, operator: 'lt', value: endDateTime });
oldFilters.splice(index, 1);
}
});
if (e.sender._filter) {
e.sender._filter.filters = oldFilters;
}
},
フィルターの精度を無効にするために、演算子が「eq」の場合に DateTime フィルターを変更したいと考えています。しかし、上記のコードのように requestStart でフィルターを変更すると、機能しません。リクエストは古いフィルターで送信されます。何が間違っているのかわかりません。このような動作を実現する別の方法はありますか?