在不使用数据存储的情况下在组合框中动态添加新项

时间:2011-05-02 15:55:21

标签: javascript extjs combobox

我的页面上有多个组合框,每个组合框都有不同的值,所以我不想为每个组合框创建一个单独的数据存储,而我想要一种方法来动态地为这些组合添加新的值不使用数据存储的框。

 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 个答案:

答案 0 :(得分:1)

在你的问题中,ExtJS组合框有两个相关的东西 1.单击触发器时在下拉列表中看到的选项 2.组合在任何给定时间点持有的。如果您提交表单,则这是将要提交的值。您可以通过选择#1中的选项来修改该值(此处,我并不是说选择不是设置值的唯一方法)

您的问题与上面的#1有关,但您要做的是修改#2

中的值

既然很清楚为什么你所做的事情没有按照你期望的方式运作,这就是你问题的答案 -

ExtJS中Combobox中的选项列表始终由商店支持。为了能够在显示为下拉列表的选项列表中添加选项,您必须将选项(记录)添加到支持特定组合框的商店。

这很简单 -

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