5

ストアにロードされた後、ドロップダウンリストでアイテムを選択しようとしています。これは動作しません:

Ext.getCmp('ddlModel').setValue(aircraftStore.getAt(0).data.ModelTypeCode);

これは例外をスローします:

Ext.getCmp('ddlModel').selectByValue(aircraftStore.getAt(0).data.ModelTypeCode);

例外は次のとおりです。'this.view'がnullであるか、オブジェクトではありません

ExtJsでこれを行う方法を知っている人はいますか?

4

5 に答える 5

11

ExtJsでコンボボックスの値を設定する関数を作成しました。

function ComboSetter(comboBox, value) {
    var store = comboBox.store;
    var valueField = comboBox.valueField;
    var displayField = comboBox.displayField;

    var recordNumber = store.findExact(valueField, value, 0);

    if (recordNumber == -1)
        return -1;

    var displayValue = store.getAt(recordNumber).data[displayField];
    comboBox.setValue(value);
    comboBox.setRawValue(displayValue);
    comboBox.selectedIndex = recordNumber;
    return recordNumber;
}
于 2012-07-13T19:50:44.820 に答える
2

Ext.getCmp('ddlModel').select(aircraftStore.getAt(0));

于 2012-06-12T16:09:16.023 に答える
0

多くの場合、コンボボックスを特定のインデックスに設定することをお勧めします。ExtJs 4.2では、次のように実行できます。

function setIndex(combobox, value)
{
    combobox.setValue(combobox.store.data.items[value].data.field1);
}
于 2014-02-04T19:52:13.823 に答える
0

私の場合、コンボボックスのIDを取得してから、ifで比較する必要がありました。これにより、2番目のウィンドウを渡すことができ、このメソッドを使用して機能しました。

var ValorSeleccionado = Ext.getCmp('cmb_tipoderol_usr').getValue(); // 'cmb_tipoderol_usr' is the id of the combobox.

次に、アクションと比較します

if (ValorSeleccionado == 1 ) { Do Action }
于 2014-02-18T22:14:16.067 に答える
0

正しい方法は、このプロパティを使用してコンボボックスを構成することだと思います。

autoSelect: true

trueは、データストアによって収集された最初の結果を選択します(デフォルトはtrue)。偽の値は、(typeAheadDelay)の値が真でない限り、コンポーネントの値を設定するためにドロップダウンリストから手動で選択する必要があります

于 2021-02-21T01:19:32.823 に答える