2011-05-02 46 views
1

我的頁面上有多個組合框,每個組合框都保存着不同的值,因此我不想爲它們中的每個創建單獨的數據存儲,而是我想要一種動態地將新值添加到這些組合框而不使用數據存儲的方式。在不使用數據存儲的情況下在組合框中動態添加新項目

var comboOne = new Ext.form.ComboBox({ 
      value: val, 
      name:'L_PHONE', 
       store: [val], 
       displayField:'value', 
       typeAhead: true, 
       mode: 'local', 
       forceSelection: true, 
       triggerAction: 'all', 
       width:100, 

       selectOnFocus:true, 
       applyTo: id 
      }); 

,所以我只需要一種方法來添加新值動態像comboOne.setValue(「NEW」),但此功能僅在頂部增加價值並覆蓋新增加的價值

回答

1

在您的問題的背景下,有兩件事與ExtJS組合框關聯。
1. 選項您在下拉菜單中看到,當您點擊觸發
2. ,該組合持有在任何給定時間點。如果您提交表單,這是將要提交的值。您可以通過選擇#1選項修改值(用這個,我的意思並不是說選擇不設置值的唯一途徑)

你的問題涉及到上面的#1,但你正在試圖做的是#修改值現在2

,這是很清楚,爲什麼你在做什麼不工作,你希望它的方式,這裏是回答你的問題 -

的選項列表在ExtJS的Combobox中總是由商店提供支持。爲了能夠在顯示爲下拉列表的選項列表中添加選項,您必須將選項(記錄)添加到支持特定組合框的商店。

這很簡單,只要 -

comboOne.getStore().add(comboOne.getStore().recordType({value:'NEWVAL'}); 
+0

那麼我得到記錄未定義的錯誤,並在同一時間,我需要箱單獨的數據存儲爲每個組合框,如果我使用常見的數據存儲,然後改變一個數據存儲會反映所有的組合框,所以我不想使用數據存儲,而是我需要一個直接的方法來插入一個新的項目 – Hunt 2011-05-02 16:48:47

+0

如何使用公共數據存儲?在這種情況下,只需將記錄添加到公共數據存儲中,並且它會反映到任何地方。 – 2011-05-02 16:57:32

+0

那麼這個問題我不想反映到處都有變化,正如我在問題中提到的那樣,我有多個組合框,每個框都保存着不同的值。所以我想單獨更新它們。 – Hunt 2011-05-02 16:59:45

相關問題