0

我想在页面加载时过滤日期范围基础并将其显示在页面上。日期正在自动填充,我的问题是在 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);
            });
        });
4

1 回答 1

0

尝试

grid.dataSource.filter($filter) 

代替

grid.dataSource.load($filter)

2012 年 2 月 11 日更新

这是您尝试做的事情。

我使过滤器在按下按钮而不是 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]);

抱歉第一个答案太懒了。那天我很着急,只是想找点东西帮忙。希望这有助于更好。

于 2012-10-30T15:56:59.110 回答