title: EXTJS Combobox not selecting by valueField after expand
body: <p>I have written some code that works pretty well, but I have a strange bug
  Here is an example...</p>
  
  <hr>
  
  <h2><strong><a href="http://vimeo.com/3112710" rel="nofollow noreferrer">PLEASE WATCH MY COMBOBOX BUG VIDEO</a></strong></h2>
  
  <hr>
  
  <p>Like I said, this works well every time datachanged fires - the right index is selected and the displayField is displayed but, everytime after I type some text in the combobox, later, when the "datachanged" fires, it wont display the displayField. Instead, it displays the value from the setValue method I launch.</p>
  
  <p>The strange thing is that if I don't ever type text and change the selection with the mouse there is no bug. Finally, this appears only when I type text in the combobox.</p>
  
  <p>Has anyone heard of this bug, have a solution, or some wise advice?</p>
  
  <h2>The Code !</h2>
  
  <p><strong>Two data stores</strong> :</p>
  
  <pre><code>ficheDataStore = new Ext.data.Store({
      id: 'ficheDataStore',
      autoLoad: true,
      proxy: new Ext.data.HttpProxy({
          url: 'ficheDetail.aspx',      // File to connect to
          method: 'GET'
      }),
      baseParams: { clientId: clientId, Type: 'Fiche' }, // this parameter asks for listing
      reader: new Ext.data.JsonReader({   // we tell the datastore where to get his data from
          root: 'results'
      }, [
          { name: 'GUID', type: 'string', mapping: 'GUID' },
          { name: 'TagClient', type: 'string', mapping: 'TagClient' },
          { name: 'Nom', type: 'string', mapping: 'Nom' },
          { name: 'Compteur', type: 'string', mapping: 'CompteurCommunes' },
          { name: 'CompteurCommunesFacturation', type: 'string', mapping: 'CompteurCommunesFacturation' },
          { name: 'AdresseFacturation', type: 'string', mapping: 'AdresseFacturation' },
          { name: 'Codes', type: 'string', mapping: 'Codes' },
          { name: 'Observations', type: 'string', mapping: 'Observations' },
          { name: 'Adresse', type: 'string', mapping: 'Adresse' }
  
        ])
  });
  
   communesDataStore = new Ext.data.Store({
      autoLoad: true,
      proxy: new Ext.data.HttpProxy({ url: 'ficheDetail.aspx?Type=Communes' }),
      reader: new Ext.data.JsonReader({ root: 'results' }, [{ name: 'Compteur' }, { name: 'Localisation'}])
  });
  </code></pre>
  
  <hr>
  
  <blockquote>
    <p>Who return something like this for the
    first:</p>
  </blockquote>
  
  <pre><code>  {results:[{"Nom":"cercle interieur"},{"Observations":""},{"Codes":" "},{"Adresse":"dd"},{"CompteurCommunes"
      :"1"},{"TagClient":"3-56"},{"GUID":"443609c6-d064-4676-a492-7baa7b4288d1"},{"AdresseFacturation":""}
      ,{"CompteurCommunesFacturation":"1"}]}
  </code></pre>
  
  <blockquote>
    <p>For the latter :</p>
  </blockquote>
  
  <pre><code>{"results":[{ "Compteur" : "1","Localisation" : "6200  ST ISIDORE"},{ "Compteur" : "2","Localisation"
   : "21340 CHANGE"},{ "Compteur" : "3","Localisation" : "1200  ELOISE"},{ "Compteur" : "4","Localisation"
   : "1200  ST GERMAIN SUR RHONE"},{ "Compteur" : "5","Localisation" : "75000 PARIS"},{ "Compteur" : "6"
  ,"Localisation" : "75001 PARIS 1ER ARRONDISSEMENT"}]}
  </code></pre>
  
  <hr>
  
  <p><strong>a <code>Combobox</code></strong> :</p>
  
  <pre><code> var comb = new Ext.form.ComboBox(
               {
                 store: communesDataStore,
                 fieldLabel: 'Code postal',
                 // hiddenName: 'Compteur',
                 name: 'CompteurCommune',
                 id: 'CompteurCommunes',
                 width: 300,
                 typeAhead: true,
                 mode: 'local',
                 minChars: 0,
                 selecOnFocus: true,
                 forceSelection: true,
                 valueField: 'Compteur',
                 displayField: 'Localisation',
                 autocomplete: true,
                 emptyText: 'Selectionnez un code postal',
                 triggerAction: 'all',
                 value: ''
                });
  </code></pre>
  
  <p>in a <strong><code>datachanged</code></strong> event i set the new value of the <strong><code>Combobox</code></strong> "CompteurCommunes" :</p>
  
  <pre><code>   ficheDataStore.addListener('datachanged', handleDatachangedEvent);
  
       function handleDatachangedEvent() 
         {
          try {
                comb.setValue(ficheDataStore.getAt(4).data.Compteur);                                                                                 
              }
          catch (err) { }
          }
  </code></pre>