我希望在页面加载时过滤日期范围库并在页面上显示它。 日期是自动填充,我的问题是在JQUERY中使用文档准备时无法过滤它,是否有任何想法?
代码:
<label for="from">Start date:</label>
<input type="text" style="width: 196px;" id="from" />
<label for="to">End date:</label>
<input type="text" style="width: 196px;" id="to" />
//function for datepicker and date range
$(function() {
$("#from").datepicker({
defaultDate: "-3w",
minDate: "-3w",
changeMonth: true,
numberOfMonths: 1,
onSelect: function(selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
}
}).datepicker('setDate', '-3w');
$("#to").datepicker({
defaultDate: "+1w",
maxDate: "currentText",
changeMonth: true,
numberOfMonths: 1,
onSelect: function(selectedDate) {
$("#from").datepicker("option", "maxDate", selectedDate);
}
}).datepicker('setDate', '+1w');
});
函数在页面加载时调整....以适应者
$(document).ready(function () {
$filter = new Array();
$from = new Date(Date.parse($("#from").datepicker('setDate', '-3w')));
$to = new Date(Date.parse($("#to").datepicker('setDate', 'currentText')));
$to = $to.setDate($to.getDate() + 1);
if ($("#from").val()) {
$filter.push({ field: "DateEnrolled", operator: "islessthanorequalto", value: $to });
}
if ($("#to").val()) {
$filter.push({ field: "DateEnrolled", operator: "isgreaterthanorequalto", value: $from });
}
var grid = $("#grid").data("kendoGrid");
grid.dataSource.load($filter);
});
});
答案 0 :(得分:0)
尝试
grid.dataSource.filter($filter)
而不是
grid.dataSource.load($filter)
2012年2月11日更新
Here's a fiddle with what you're attempting to do.
我按下按钮而不是PageLoad对过滤器执行操作,以便您可以在过滤器操作之前和之后查看数据。
您必须创建一个逻辑“和”过滤器对象,并将过滤器添加到该对象中。
1)创建“和”过滤器对象
var customFilter = {
logic: "and",
filters: []
};
2)将过滤器添加到对象
customFilter.filters.push({
field: "DOB",
operator: "isgreaterthanorequalto",
value: date1
});
customFilter.filters.push({
field: "DOB",
operator: "islessthanorequalto",
value: date2
});
3)在网格的数据源上设置过滤器
$("#testGrid").data("kendoGrid").dataSource.filter[customFilter]);
很抱歉第一个答案太懒了。那天我很匆忙,只是试图得到一些帮助。希望这会有所帮助。