最初在Jquery中加载页面时过滤或搜索值

时间:2012-10-26 15:22:06

标签: javascript jquery date kendo-ui pageload

我希望在页面加载时过滤日期范围库并在页面上显示它。 日期是自动填充,我的问题是在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);
            });
        });

1 个答案:

答案 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]);

很抱歉第一个答案太懒了。那天我很匆忙,只是试图得到一些帮助。希望这会有所帮助。