kendo ui 网格数据源过滤器日期格式

Posted

技术标签:

【中文标题】kendo ui 网格数据源过滤器日期格式【英文标题】:kendo ui grid datasource filter date format 【发布时间】:2012-11-14 23:01:12 【问题描述】:

我在数据源中有一个带有日期字段的剑道网格。 显示字段时,我使用模板以英国日期格式“dd/MM/yyyy”显示日期。 问题是过滤时,我不知道如何以英国格式显示日期过滤器。

我遇到的另一个问题是没有日期时间类型,只有日期,所以只能按日期而不是日期时间过滤。

任何帮助或想法将不胜感激。

这是局部视图(cshtml

<script type="text/javascript">
$(document).ready(function() 
    var date = new Date();
    var dateString = date.getMonth()+1 + "/" + date.getDate() + "/" + date.getFullYear();
    var url = '@Url.Action(AccountTypeController.GetAllocationGridData, new id = Model.Id)';

    var dataSource = new kendo.data.DataSource(
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true,
        pageSize: 10,
        transport: 
            read: 
                type: 'post',
                dataType: 'json',
                url: url
            ,
            parameterMap: function(options) 
                if (options.filter) 
                    for (var i = 0; i < options.filter.filters.length; i++) 
                        if (options.filter.filters[i].field == 'Start' || options.filter.filters[i].field == 'End') 
                            options.filter.filters[i].value = kendo.toString(options.filter.filters[i].value, "MM/dd/yyyy");
                        
                    
                
                return options;
            
        ,
        schema: 
            data: 'Data',
            total: 'Count',
            model: 
                id: 'Id',
                fields: 
                    Id:  type: 'number' ,
                    Start:  type: 'date' ,
                    End:  type: 'date' ,
                    Allocation:  type: 'number' 
                
            
        ,
        sort: 
            field: "Start",
            dir: "asc"
        ,
        filter:
            logic: "and",
            filters: [
                
                    field: "End",
                    operator: "gt",
                    value: dateString
                
            ]
        
    );

    $('#account-allocation').kendoGrid(
        height: 383,
        dataSource: dataSource,
        columns: [
            
                field: 'Start',
                title: 'Start Date',
                template: '#= kendo.toString(Start,"dd/MM/yyyy HH:mm") #'
            ,
            
                field: 'End',
                title: 'End Date',
                template: '#= kendo.toString(End,"dd/MM/yyyy HH:mm") #'
            ,
            
                field: 'NoSpaces',
                title: 'Number of Spaces',
                filterable: false
            ,
            
                field: 'Id',
                filterable: false,
                title: 'Actions',
                template: '<a class="link-lightbox" href="@Url.Action(AccountTypeController.UpdateAllocationAction1, AccountTypeController.Name)/#= Id #"><img src="@Url.Content("~/Content/img/grid-update.png")" /></a>',
                width: 75
            
        ],
        filterable: true,
        sortable: false,
        scrollable: false,
        pageable: true          
    );
</script>

<div class="panel panel-w">
    <h2>@Model.Name Allocations
            <a href="@Url.Action(AccountTypeController.SetAllocationAction1, new  id = Model.Id )" class="button link-lightbox"><span class="edit">Set Account Type Allocation</span></a>
    </h2>
    <div id="account-allocation"></div>
</div>

【问题讨论】:

另外,你可以试试看这里:***.com/questions/28232575/… 【参考方案1】:

首先包含对应英语文化的JavaScript文件:

<script src="http://cdn.kendostatic.com/2012.2.710/js/cultures/kendo.culture.en-GB.min.js"></script>

然后调用kendo.culture设置当前文化:

kendo.culture("en-GB");

然后,Kendo Grid 将自动使用“dd/MM/yyyy”格式。

有关 Kendo UI 如何处理全球化的更多信息,请参阅documentation。

这是一个现场演示:http://jsbin.com/onetol/1/edit

【讨论】:

以上是关于kendo ui 网格数据源过滤器日期格式的主要内容,如果未能解决你的问题,请参考以下文章

剑道网格日期格式

从 Kendo DatePicker Inside Kendo Grid 中选择的日期格式

Kendo UI:Grid中单元格日期格式化

Kendo UI 格式化日期和时间字段

Kendo Grid - 解析和格式化日期

在 kendo ui 的调度程序导航中更改日期格式