2015-08-18 17 views
12

Utilizzo della versione 5.1.3 di extjs. Ho un combobox typeahead nella forma come di seguito:I valori della casella combinata scompaiono al momento della digitazione

negozio Combobox:

Ext.define('MyApp.view.myobj.field.CustomObject', { 
    extend:'Ext.form.field.ComboBox', 
    xtype: 'cstmObject', 
    requires: [ 
     'MyApp.model.myobj.CustomObject' 
    ], 
    fieldLabel: 'Custom Object Name', 
    displayField: 'name', 
    valueField: 'name', 
    queryMode: 'remote', 
    selectOnFocus: false, 
    typeAhead: true, 
    hideTrigger: true, 
    minChars: 1, 
    queryCaching : false, 
    store:{ 
     model: 'MyApp.model.myobj.CustomObject' 
    } 
} 

Di seguito è riportato frammento in forma:

{ 
    xtype: 'cstmObject', 
    fieldLabel: 'Custom Object Name', 
    allowBlank: false, 
    maxLength: 5, 
    enforceMaxLength: true, 
    bind: '{customObject.row}' 
} 

Sulla digitando il valore nella casella combinata a volte i valori discesa vengono visualizzate e a volte non mostra per l'input. Quando osservo il pannello di rete, il negozio si sta caricando correttamente dal server.

Quali sono i possibili problemi lato client per non mostrare i valori di dropdown quando lo store si sta caricando correttamente dal server?

Aggiornamento: Ho trovato un modello per il problema, ad esempio se una corrispondenza esatta del record viene trovata nell'elenco a discesa con il valore digitato, solo i valori a discesa stanno scomparendo. (Ad esempio se digito alfabeto A e se c'è un record con il valore A valori poi discesa stanno scomparendo. Se digito un poi discesa non sarà scompare in quanto non v'è alcuna traccia di minuscolo a).

Quali sono le configurazioni richieste che devo fornire per risolvere questo problema?

+0

Come lo mostri, dovrebbe funzionare (ho provato il tuo codice in un [fiddle ] (https://fiddle.sencha.com/#fiddle/tg7)). Forse prova a riprodurre il problema tu stesso in un violino, o postare le risposte del server di esempio per entrambi i casi di lavoro e rotti. A me sembra che il problema sia relativo al server. – rixo

+0

Guarda il violino per jonathan cartwright qui sotto. Ho la stessa identica cosa in quel violino fino a quando non ho usato un negozio per la fonte di sata per il combobox. Se lo hai ancora con il mio violino, fammi sapere. –

risposta

4

Sembra che questo è un bug in Ext 5.1

Questo accade solo quando il componente è associato a un modello.

Qui è Fiddle per riprodurre questo problema. Digitare A verranno visualizzati i risultati e quando si digita A1 (che è presente nello store), i risultati verranno nascosti.

Logged un bug in Ext 5 Forum

Aggiornamento

Ecco una correzione che mi è venuta.

Ext.define('MyApp.overrides.form.field.ComboBox', { 
    override: 'Ext.form.field.ComboBox', 

    /** 
    * Fix for EXTJS-19274 
    */ 
    setValue: function(value) { 
     var me = this; 

     // This is the value used to forceSelection in assertValue if an invalid value is left 
     // in the field atcompleteEdit. Must be cleared so that the next usage of the field 
     // is not affected. 
     me.lastSelectedRecords = null; 

     // Value needs matching and record(s) need selecting. 
     if (value != null) { 
      // Only go through text/record matching if there's a change. 
      if (value !== me.getRawValue()) { 
       me.doSetValue(value); 
      } 
     } 
     // Clearing is a special, simpler case. 
     else { 
      me.suspendEvent('select'); 
      me.valueCollection.beginUpdate(); 
      me.pickerSelectionModel.deselectAll(); 
      me.valueCollection.endUpdate(); 
      me.resumeEvent('select'); 
     } 
     return me; 
    } 
}); 
3

ho ExtJS Combo Ti piace questa:

{ 
xtype  :'combo', 
emptyText :'Pilih Client ...', 
id   :'f_client', 
store  : 'store_client', 
displayField:'longname', 
typeAhead : true, 
valueField :'nickname', 
width  : 350 
} 

e provo a cercare i dati di un minuscolo o maiuscolo A va bene, quindi penso che è necessario verificare di nuovo sul lato server. perché alcune query come oracle fanno distinzione tra maiuscole e minuscole.

column1 like '%a%' 

e

`column1 like '%A%'` 

è diverso.

3

Ext.form.field.ComboBox ha una proprietà caseSensitive che è false per impostazione predefinita. Ciò significa che il problema può essere sotto il tuo controllo, ma solo se questa proprietà è impostata su true. Puoi controllare la tua console (o con l'estensione Sencha per Chrome) se questa proprietà è false.

Controllare anche nella scheda di rete della console cosa viene inviato al server. Se la combo invia lettere maiuscole, ma il server restituisce lettere minuscole, il problema è lato server.

4

Il violino fiddle here lavori nel modo desiderato, con l'eccezione che l'illuminato di opzioni provengono da un negozio. Quello che ho notato è che dovevo legare la combobox direttamente a un negozio perché funzionasse senza nascondersi dopo aver digitato A1.

Per altre persone che esaminano gli altri violini elencati in questo numero, se si digita A1 molto lentamente non si vedrà il comportamento. se la digiti alla stessa velocità con cui stai scrivendo un post o qualcosa che è quando vedrai il completamento automatico scomparire con

+0

Il problema si verifica quando lo associamo al modello. Senza vincolanti non c'è problema. Guardato il tuo violino, non è vincolante modellare, quindi sta funzionando bene. – Awesome

Problemi correlati