如何在网格过滤器菜单自定义中使用DatePicker时,如何覆盖kendoDatePicker中的value()

时间:2013-11-13 14:38:58

标签: filter grid kendo-ui kendo-grid kendo-datetimepicker

目前,网格定义如下:

   $('#gridManagers').kendoGrid({
    dataSource: dataSourceManagers,
    columns: [
        { field: 'First', title: 'FirstName' },
        {
            field: 'HireDate', format: "{0:dd-MM-yyyy}", filterable: {
                ui: filterDate
            }
        },
    ],
    filterable: true,
    sortable: {
        mode: 'multiple'
    },
    pageable: true
});

function filterDate(element) {
    element.kendoDatePicker({
        format: 'MM-dd-yyyy',
        close: function (e) {
        console.log("_value:"+this._value);
        this._value = kendo.toString(this.value(), "MM-dd-yyyy");
        console.log("this.value():" + this.value());
    }
});

当我从DatePicker中选择日期时,控制台日志记录显示:

LOG: _value:Sat Nov 30 00:00:00 UTC+0100 2013 
LOG: _current:11-14-2013 
LOG: this.value():11-30-2013 

我之所以从'星期六30月30日00:00:00 UTC + 0100 2013'转换为'11 -30-2013'的原因是因为服务器上无法正确识别格式。

我不明白网格是如何检索DatePicker的值并用来定义过滤器的?

1 个答案:

答案 0 :(得分:0)

将DatePicker和Grid转换为字符串时,不要混淆它的值,它应该是Date。

如果您想以不同的格式发送值,请使用parameterMap函数在服务器上以您需要的方式对其进行转换。