8

データソースに日付フィールドを持つ剣道グリッドがあります。フィールドを表示するとき、テンプレートを使用して、英国の日付形式「dd/MM/yyyy」で日付を表示します。問題は、フィルタリングするときです。日付フィルターを英国形式で表示する方法がわかりません。

私が抱えているもう1つの問題は、日時型がなく、日付だけであるため、日時ではなく日付でのみフィルタリングできることです。

ヘルプやアイデアをいただければ幸いです。

これは部分ビューです (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")" alt="Update"/></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>
4

1 に答える 1

9

最初に、英語のカルチャに対応する 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 がグローバリゼーションにどのように対処するかについての詳細は、ドキュメントを参照してください。

これがライブデモです: http://jsbin.com/onetol/1/edit

于 2012-11-28T08:34:37.147 に答える