1

テキストフィールドidをリッスンして、グリッドの列の値を変更します。change

oTextfieldName.on( 'change', function( oField, strValue ) {
   oStore.getAt( 0 ).setId( strValue );
}

ただし、setId()が呼び出された場合、その行の選択0は削除されます。私のアプリは、選択されたままになるために、その選択された行に依存しています。

ID列を編集/変更しながら、行を選択したままにするにはどうすればよいですか?


編集:

使用store.sync()すると、選択された状態に戻ります。

しかし、私の店は投げてめちゃくちゃになります:

Uncaught TypeError: Object function () { this.destroy = Ext.emptyFn; } has no method 'indexOf' ext-dev.js:1253

4

2 に答える 2

2

行を再度選択できますか?

oTextfieldName.on( 'change', function( oField, strValue ) {
   oStore.getAt( 0 ).setId( strValue );
   yourGrid.getSelectionModel().select(0);
}

このようなことを行って、選択イベントの発生を抑制することもできます。

var suppressEvent = true;
yourGrid.getSelectionModel().select(rowIndex, null, suppressEvent);  

SelectionModelselectメソッドのドキュメントを確認してください

これがあなたが遊ぶことができる簡単なフィドルです。「テスト」ボタンをクリックすると、インデックス1の行が選択されます。

于 2013-03-12T23:19:08.757 に答える
1

sync()このエラーにつながったので、私は今その貧弱な方法を使用しています:

oSelectionModel.deselect( nIndex, true );        
oSelectionModel.select( nIndex, true );

変更後、選択を解除し(幸いにも見えません)、選択します。少なくともそれは機能します。

于 2013-03-13T16:18:06.410 に答える