2

以前は使用してKendo-UI v2012.2.710いましたが、更新するKendo-UI v2012.3.1114とコードが機能しなくなりました。私のコードは非常に単純なので、何が変わったのかよくわかりません。誰でもこれに光を当てることができますか?

この機能を維持するために以前のバージョンにロールバックすることは、他の機能を損なう可能性があるため、オプションではありません。

<div id="gridTiming"></div>

<script>
    var entries = [
        { "city":"Boston", "time":"10:14", datetime: "2012-08-28T10:14:00.000Z" },
        { "city":"Kyoto", "time":"23:14", datetime: "2012-08-28T23:14:00.000Z"},
        { "city":"La Paz", "time":"10:14", datetime: "2012-08-28T10:14:00.000Z"},
        { "city":"San Francisco", "time":"07:14", datetime: "2012-08-28T07:14:00.000Z"},
        { "city":"Salt Lake City", "time":"08:14", datetime: "2012-08-28T08:14:00.000Z"},
        { "city":"Salvador", "time":"11:14", datetime: "2012-08-28T11:14:00.000Z"},
        { "city":"Salzburg", "time":"16:14", datetime: "2012-08-28T16:14:00.000Z" },
        { "city":"San Diego", "time":"07:14", datetime: "2012-08-28T07:14:00.000Z" }
    ];

    function timeEditor(container, options) {
        $('<input data-text-field="' + options.field + '" data-value-field="' + 
                  options.field + '" data-bind="value:' + options.field + 
                  '" data-format="' + options.format + '"/>')
        .appendTo(container)
        .kendoTimePicker({});
    }

    function dateTimeEditor(container, options) {
        console.log("options", options);
        $('<input data-text-field="' + options.field + '" data-value-field="' + 
                  options.field + '" data-bind="value:' + options.field + 
                  '" data-format="' + options.format + '"/>')
        .appendTo(container)
        .kendoDateTimePicker({});
    }

    $("#gridTiming").kendoGrid({
        dataSource: {
            data: entries,
            schema: {
                parse: function (response) {
                    $.each(response, function (idx, elem) {
                        if (elem.time && typeof elem.time === "string") {
                            elem.time = kendo.parseDate(elem.time, "HH:mm");
                        }
                        if (elem.datetime && typeof elem.datetime === "string") {
                            elem.datetime = kendo.parseDate(elem.datetime, "yyyy-MM-ddTHH:mm:ss.fffZ");
                        }
                    });
                    return response;
                }
            }
        },
        columns: [
            { command: [ "edit" ] },
            { field:"city", title:"City" },
            { field:"time", title:"Time", format:"{0:HH:mm}", editor: timeEditor },
            { field:"datetime", title:"Date - Time", format:"{0:yyyy-MM-dd HH:mm}", editor: dateTimeEditor }
        ],
        editable: "inline",
        navigatable: true
    });
</script>

編集: 次の jsFiddles のペアは、問題を示しています。

問題を確認するには、次の手順を実行します。

  1. 行の「編集」をクリックします
  2. 項目を変更します。
  3. 「更新」をクリック

Troy Alford : どちらのバージョンも基礎となるグリッドのデータを更新しますが、v2012.2.710バージョンのみがダイアログを適切に閉じ、グリッドのセルを変更済みとしてマークします。

4

2 に答える 2

3

問題をテストするために 2 つの jsFiddles を作成しましたが、コードを変更しなくても両方のバージョンがKendo-UI機能します。

編集: @Emiliano Bartolome によって提供された更新されたバージョンを OP に追加しました。これらのリンクは次のとおりです。

Kendo-UIこれらの jsFiddles はCDN と CDN経由に依存していることに注意してくださいjQuery 1.8.2。私が使用しているリンクは次のとおりです。

于 2012-12-05T21:34:26.777 に答える
1

謎解き!新しいバージョンでは、 で をid定義する必要がありschema.modelます。

Kendo-UI v2012.3.1114 を使用して、バージョン 2を更新しました。

私がモデルで行ったことは、 を に設定したところ、機能idするようにcityなりました!

model:{
    id:"city"
},
于 2012-12-05T23:50:29.527 に答える