2

私はExtjs 4.2を使用しているので、行編集プラグインを備えたグリッドがあります。すべて正常に動作します。別のフィールドに応じて、あるフィールド値を更新する方法を知りたいです。たとえば、グリッドに field1 と field2 がある場合、それらのいずれかが変更されたときにfield3値をfield1+値で更新する必要があります。field2通常、jquery を使用すると、フィールドごとに変更イベントをコーディングできますが、rowediting イベントでこれを行うにはどうすればよいですか?

これは可能ですか?

4

3 に答える 3

2

edit次のイベントを使用できますrowedit

Sencha Fiddle : Grid RowEditor - 条件に基づいてセルの値を変更する

grid.on('edit', function(editor, e){
/**
 * here I am checking the column name to complete process
 * you change what you want
 */
if (e.field == "name") {
    e.record.set('result', parseInt(e.record.get('dummy')) + parseInt(e.record.get('age')));
}

})
于 2014-04-04T06:42:42.397 に答える
0

RowEditor を使用する場合、e.field の値は、行を編集するためにクリックされたフィールドに完全に依存します。

問題を説明するには:

  1. 前の回答で、フィドル リンク ( https://fiddle.sencha.com/#fiddle/4pj ) を開きます。
  2. 電子メール フィールドをダブルクリックし、名前を変更します。
  3. e.field が「name」ではなく「email」になるため、ハンドラーは結果フィールドを更新しません。

つまり、行エディターは、クリックしたフィールドを編集済みフィールドと見なします。これは「行」エディターであり、行内の複数のフィールドを編集するために使用される可能性が高いため、意味がありません。

変更されたフィールドのみのリストを取得するには、 を使用しますe.record.getChanges()。これらは、変更されたフィールドとその新しい値のみを提供します。

于 2014-05-02T07:53:16.760 に答える