0

按照 Telerik 提供的代码示例,我正在尝试保留 Kendo Grid 状态。一切似乎都在工作,但每当我使用日期列过滤器并重新加载页面时,过滤器中的日期就会减少一天......我选择 10 月 5 日,刷新和 BAM!过滤器说 10 月 4 日。:) 有什么线索吗?

$(document).ready(function () {
    var grid = $("#ProjectsGrid").data("kendoGrid");
    var state = JSON.parse($.cookie("projectsState"));
    if (state) {
        if (state.filter) {
            parseFilterDates(state.filter,  grid.dataSource.options.schema.model.fields);
        }
        grid.dataSource.query(state);
    }
    else {
        grid.dataSource.read();
    }
});

function dataBound(e) {
    var grid = this;
    var dataSource = this.dataSource;

    var state = kendo.stringify({
        page: dataSource.page(),
        pageSize: dataSource.pageSize(),
        sort: dataSource.sort(),
        group: dataSource.group(),
        filter: dataSource.filter()
    });

    $.cookie("projectsState", state);
    if ($.cookie('empRows')) {
        $.each(JSON.parse($.cookie('empRows')), function() {                        
            var item = dataSource.get(this);
            var row = grid.tbody.find('[data-uid=' + item.uid + ']');
            row.addClass('k-state-selected');
        })
    }
}


function parseFilterDates(filter, fields) {
    if (filter.filters) {
        for (var i = 0; i < filter.filters.length; i++) {
            parseFilterDates(filter.filters[i], fields);
        }
    }
    else {
        if (fields[filter.field].type == "date") {
            filter.value = kendo.parseDate(filter.value);
        }
    }
}
4

0 回答 0