【发布时间】:2021-03-01 18:54:20
【问题描述】:
尝试设置结束日期以过滤剑道网格。现在用户可以在两个日期之间进行过滤,但如果用户只是输入结束日期,我需要过滤网格。这是我正在使用的代码,不确定我缺少什么。我的网格类似于这个,结束日期不起作用http://jsfiddle.net/OnaBai/5bchz/86/
var orderDateFromFilter = $("#FromDate").val().split('-');
var orderDateToFilter = $("#ToDate").val().split('-');
if (orderDateFromFilter == "") {
orderDateToFilter = "";
$("#ToDate").val("");
$("#input5").val("");
$("#input6").val("");
}
else if (orderDateToFilter == "") {
$("#ToDate").val($("#FromDate").val());
$("#input6").val($("#input5").val());
orderDateToFilter = orderDateFromFilter;
}
var mydate1 = new Date(orderDateFromFilter[0], orderDateFromFilter[1]-1, orderDateFromFilter[2]);
var mydate2 = new Date(orderDateToFilter[0], orderDateToFilter[1]-1, orderDateToFilter[2]);
var filter = { logic: "and", filters: [] };
filter.filters.push({ field: "FilterByDate", operator: "gte", value: mydate1 });
filter.filters.push({ field: "FilterByDate", operator: "lte", value: mydate2 });
if (orderDateFromFilter== "" && orderDateToFilter == "")
filter = "";
grid.dataSource.filter(filter);
}
【问题讨论】:
-
从您共享的 jsfiddle 中,在 "$("#datepicker, #datepicker1").on("change", function ()" function 中,将 "IF" 条件更改为 "if (mindate)" 和 "if (maxdate)",如果选择了其中一个过滤器,这将适用于两个过滤器。
-
至于您的解决方案,将您的“过滤器”变量更改为此逻辑为“或”->“var filter = { 逻辑:“或”,过滤器:[] };”跨度>
-
deep206 谢谢它的工作原理!
标签: javascript jquery .net kendo-ui kendo-grid