2010-12-07 9 views
1

コンボボックスとフォームウィンドウが同じページにあります。 コンボボックスのコードは次のとおりです。ExtJSコンボボックスは、別のフォームをサブミットした後にストアをリロードしません。

combo1 = new Ext.form.ComboBox({ 
    fieldLabel: 'Intrested in', 
    hiddenName: 'interest', 
    store: new Ext.data.Store({ 
     proxy: new Ext.data.HttpProxy({ 
      url: 'ajax.php', 
      method: 'GET' 
     }), 
     reader: new Ext.data.JsonReader({ 
      root: 'rows', 
      fields: [{ 
       name: 'myId' 
      }, { 
       name: 'displayText' 
      }] 
     }) 
    }), 
    valueField: 'myId', 
    displayField: 'displayText', 
    triggerAction: 'all', 
    emptyText: 'Select', 
    selectOnFocus: true, 
    editable: false 
});  

初めてSQLテーブルからフェッチされたリストが正しくセットされています。

同じページに、新しい値をSQLデータベース に送信する短いフォームのウィンドウがありますが、サブミットしてコンボボックスを開くと、リストは更新されません。

フォームを再送信した後には、以前に追加された値が表示されます。

最初に提出した後にコンボボックスが自動的にリロードされないのはなぜですか?

答えて

4

ここでの問題は、comboboxがいわゆる "最後のクエリ"を内部的にキャッシュすることです。変更しないと、ストアからデータをリロードしません。だから解決策は、この "最後のクエリ"パラメータをリセットすることです:

combo1.lastQuery = null; 
+1

これは素晴らしい!ありがとうございました。 – lvil

関連する問題