2 つの列を表示する単純な (少なくともそれが目標だった) 剣道 UI グリッドを実装しています。checkbox
列には単純なテンプレートがあり、のが更新されるようchange()
event
にcheckbox
が処理されます。私はこれを確認しました、そしてそれは動作します。model
datasource
データ ソースは 用に構成されており、 および 用に定義batch
されています。どちらも ajax 呼び出しを実行する関数を呼び出します。前に言ったように、関数は期待どおりに処理されます。ただし、 で定義されている関数はそうではありません。データソースのは、 (または)を呼び出す関数にイベントがフックされた単純なボタンでトリガーされます。transport
read
update
read
update
transport
sync()
click
datasource.sync()
grid.saveChanges()
transport: {
read: function(options) {
return loadStuff(options);
},
update: function (options) {
return updateStuff(options);
}
}
Kendo UI コードでデバッグすると、ModelSet のモデル属性が常に空のように見えるため、sync()
同期するものがないと判断されます。ここで何が起こっているのか、誰にもわかりませんか?
更新:check
チェックボックス/
を処理するときに何か問題があるようですuncheck
。どうやら私は次のようなものを使用する必要があります
$('#divGrid').on('click', '.chkbx', function() {
var checked = $(this).is(':checked');
var grid = $('#divGrid').data().kendoGrid;
var dataItem = grid.dataItem($(this).closest('tr'));
dataItem.set("Selected", checked);
});
残念ながら、set()
データ項目にメソッドが定義されていないようです。デバッグ時には、 のみが含まれ、メソッドdata
を持つ Model オブジェクトは含まれません。set()
更新 2:
で定義されたモデルで ajax 呼び出しから返されたデータをラップしようとしましたModel.define()
。モデルの _modified プロパティがtrue
. ただし、ModelSet のモデル配列は空のままです。これは Kendo UI のバグですか、それとも間違った方向に進んでいますか?