2010-12-07 25 views
1

J'ai une zone de liste déroulante et une fenêtre de formulaire s'ouvrant sur la même page. Le code ComboBox est:ExtJS La zone de liste déroulante ne rechargera pas le magasin après l'envoi d'un autre formulaire

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 
});  

première fois la liste extraite de table SQL est correctement chargé.

Sur la même page il y a une fenêtre avec un formulaire court soumettant de nouvelles valeurs à la base de données sql, mais après l'avoir soumis et en ouvrant la liste déroulante, la liste n'est pas actualisée. Seulement après avoir soumis à nouveau le formulaire, je peux voir les valeurs ajoutées précédemment.

Pourquoi la zone de liste déroulante ne se recharge pas automatiquement après la première soumission?

Répondre

4

Le problème ici est, que le combobox met en cache la soi-disant "dernière requête" - si cela ne change pas, il ne recharge pas ses données du magasin. Donc, la solution est de réinitialiser ce paramètre "dernière requête":

combo1.lastQuery = null; 
+1

Cela a fonctionné très bien! Je vous remercie. – lvil