2016-07-29 13 views
0

hier ist mein Codeextjs Combobox triger erst nach Textart, aber nicht auf klicken

     { 
         xtype: 'combobox', 
         minChars: 3, 
         anchor: '100%', 
         fieldLabel: 'Type', 
         name: 'typeName', 
         typeAhead: true, 
         mode: 'remote', 
         emptyText: 'Select Type', 
         valueField: 'id', 
         bind: { 
          store: '{type}' 
         } 
        }, 

so habe ich Combobox whos Speicher ist autoload: true, , aber wenn ich auf der Combobox Schaltfläche klicken, wird erneut die Anforderung zum Server. Ich will das nicht, ich möchte die Anfrage an Server nur senden, wenn jemand etwas darin eingibt.

Antwort

0
    { 
        xtype: 'combobox', 
        minChars: 3, 
        anchor: '100%', 
        fieldLabel: 'Type', 
        name: 'typeName', 
        typeAhead: true, 
        mode: 'remote', 
        emptyText: 'Select Type', 
        valueField: 'id', 
        bind: { 
         store: '{type}' 
        }, 
        triggerAction : 'all', 
        queryMode  : 'local', 
        listeners: { 
         change: function (field, newValue, oldValue) { 
         var store = field.getStore(), 
          rec =store.findRecord('id',newValue); 
         if(Ext.isEmpty(rec)){ 
          // You can write the code to send the request to server. 
         }       
        } 
        } 
       } 

Ich habe zwei Config-Eigenschaft hinzugefügt Sie COMBOBOX:

triggerAction : 'all', 
queryMode  : 'local' 

Nun, wenn Sie etwas in Ihrem Combobox dann Ereignis ändern gefeuert schreiben.

change Ereignis wird auch ausgelöst, wenn Sie ein Dropdown-Element auswählen. So können Sie überprüfen, ob der geänderte Wert ein neuer geschriebener Wert ist oder bereits aus drowdown-Elementen ausgewählt wurde.