0

剣道グリッドでバッチ編集を作成しようとしている角度のあるアプリケーションがあります。手動でグリッドにデータを追加しているので、データソースの転送メカニズムを使用せず、データソースで .data() を呼び出すだけです。

セルを編集すると、保存イベントが正しく発生し、変更されたデータ項目も渡されますが、モデルの生データを取得するために .toJSON() を呼び出すと、.toJSON() の出力が異なるようですモデル自体の出力から。.toJSON() が反復によって遅れているかのようです。セルを再度編集すると、以前の値が取得されるためです。

その例をここで見ることができます: http://dojo.telerik.com/ujiSu/5

製品名を編集してみると、コンソールに model の出力と model.toJSON() の出力が表示されます

.toJSON() の前にデータソースで .read() を呼び出してみましたが、何らかの理由でデータソースが空になります。

また、モデル データのダーティ プロパティを調べて、ダーティ状態の変更を強制しましたが、異なる結果はありませんでした。

私の目標は、グリッドとデータソースに表示される生の現在のデータを取得することです。

これに関するヘルプは大歓迎です。

4

1 に答える 1

0

グリッドの保存イベントでは、モデルはまだ更新されていません。これ、保存イベントのにグリッドによって更新されます (つまり、グリッドの dataSource にプッシュされます) 。これは、保存イベントが e.preventDefault() によってキャンセル可能であるためです。 http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-save

そのため、e.model には dataSource アイテムの現在の状態が含まれ、e.values には保存が完了するまで更新されたフィールドが含まれ、その時点で e.values の値が dataSource モデルにプッシュされます。

グリッド保存イベントで e.values を e.model と組み合わせる必要があるか、代わりに DataSource 変更イベントhttp://docs.telerik.com/kendo-ui/api/javascript/data/datasourceを参照することをお勧めします。アクションが「itemchange」である#events-changeは、グリッド保存イベントの後に発生します (キャンセルしていない限り)。

于 2016-11-04T12:46:47.773 に答える