2011-09-23 79 views
1

我剛打出另一篇文章,並在中途找到了我的問題。讓我們看看它是否再次發生。ExtJS:以編程方式替換組合框中的元素

我需要能夠更新另一個下拉列表,如果給定的選擇。我的問題是第一次下載沒有加載,頁面上沒有任何反應。如果用戶第二次選擇相同的元素,那麼一切正常。

我編程生成一串組合框的:發生

var item = new Ext.form.ComboBox({ 
         store: store, 
         id: input.id, 
         name: input.id, 
         displayField: 'description', 
         valueField: 'id', 

         mode: 'local', 
         forceSelection: true, 
         triggerAction: 'all', 
         emptyText: 'Select one...', 
         typeAhead: false, 
         editable: true, 
         allowBlank: allowBlank, 
         selectOnFocus:true, 
         fieldLabel: input.label, 
         listeners: { 
          scope: this, 
          'select': checkDependencies 
         }, 
         autoHeight: true 
        }); 

我的問題,當我嘗試更新下來的依賴下降。下面是被調用當用戶選擇一個選項的功能:

function checkDependencies(el, ev){ 
    debug(el); 
    debug(el.value); 
    var val = el.value; 
    if (Ext.isArray(dependencies[val])) { 
     var id = dependencies[val]['changeId']; 
     var input = Ext.getCmp(id); 
     var vals = dependencies[val]["vals"]; 
     input.store.removeAll(); 
     gridForm.doLayout(); 
     debug("num elements: " + vals.length); 
     input.autoHeight = true; 
     for (var i=0;i<vals.length;i++) { 
      input.store.add(vals[i]); 
     } 
     gridForm.doLayout(false,true); 
    } 
} 

它擊中所有調試行。列表中有元素,但正如我所說的,用戶第一次選擇元素不起作用,但隨後的選擇正常工作。

我最終把doLayouts eveywhere,但它似乎沒有幫助。

回答

2

嘗試在輔助框中設置queryMode: 'local',並在您的checkDependencies中執行input.lastQuery = ''

+0

* headdesk *是 - 這樣做。謝謝。 – jeffkolez

相關問題