0

GWT + GXT を使用します。メッセージボックスなどでアクティブな行エディターの状態を変更することは可能ですか? テキスト領域を含むメッセージ ボックスを呼び出すイベントを作成しました。そのテキスト領域からグリッドにテキストを配置するには、rowEditor.stopEditing(true) を呼び出し、テキストを手動でデータ グリッドに挿入し、rowEditor.startEditing(true) を実行する必要があります。 . したがって、次のようになります。

re.stopEditing(true);
List<Model> list = data.getModels();
list.get(activeRow).set("key","value");
re.startEditing(activeRow, true);

そしてそれは機能します...しかし、re.stopEditing(true)によってすでに保存されているため、ユーザーは必要に応じて変更をキャンセルできません。

4

1 に答える 1

0

望まない stopEditing状態変更 (保存された変更) を引き起こし、その副作用をスキップする API が他にない場合、いくつかの潜在的なオプションがあります (私はこのライブラリに慣れていないので、私は'一般的なパターンで話します):

  1. 「実際の」モデルで呼び出さないでください。クローン/コピーを使用してすべての作業を行い、変更をコミットするときに変更を実際のモデルに保存します。
  2. 編集がまったく行われる前に、モデルの「元の」状態を保存できますか? その後、 を介して中間保存が何度行われてもstopEditing、元のモデルを復元するだけでキャンセル操作を実装できます。
  3. これらの両方が不可能な場合は、より複雑なオプションがあります - ソースコードを調べてくださいstopEditing- クラスを拡張してこのメ​​ソッドをオーバーライドし、望ましくない機能を削除できますか? 多数のプライベート変数が含まれている場合は、いつでもリフレクションを介してそれらを拡張機能に公開するか、変更をカバーするために拡張機能を必要に応じて詳細にすることができます。

うまくいけば、これらのいずれかがあなたの状況に適用できるでしょう。

于 2014-02-10T07:18:37.163 に答える