Extjs 添加唯一的组合框值来存储

Posted

技术标签:

【中文标题】Extjs 添加唯一的组合框值来存储【英文标题】:Extjs add unique combobox value to store 【发布时间】:2016-01-25 11:07:53 【问题描述】:

我有连接到商店的组合框。当我在组合框中输入内容并按 Enter 时,我将组合框值添加到商店。问题是我只想添加不在存储中的值。这是示例代码:

var states = Ext.create('Ext.data.Store', 
    fields: ['name'],
    data : [
        name:"Alabama",
        name:"Alaska",
        name:"Arizona"        
    ]
);

Ext.create('Ext.form.ComboBox', 
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'name',
    renderTo: Ext.getBody(),
    listeners: 
                specialkey: function(field, e)                    
                    var store = this.getStore();
                    if (e.getKey() == e.ENTER)                        
                        store.add(name: this.getValue());
                    
                
            
);

【问题讨论】:

【参考方案1】:

你可以在添加之前在商店中寻找价值:

specialkey: function(field, e)                    
    var store = this.getStore();

    if (e.getKey() !== e.ENTER)   
        return;
      

    if(store.find('name', this.getValue(), null, null, true) === -1) 
        store.add(name: this.getValue());
             
 

fiddle 有答案

【讨论】:

第一次添加记录后没有添加 谢谢我的朋友。但是你能解释一下它是如何工作的吗? @MarkoNikolic 我不确定你想让我解释什么。你可以在 sencha 网站上查看和find doc 是的,我找到了,我明白了。感谢您的帮助:)

以上是关于Extjs 添加唯一的组合框值来存储的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS:如何同时提交:组合框值和文本

Extjs:如何从控制器设置额外参数以在商店中用于填充组合框值。想要将额外参数值设置为 abc.1-cond1、abc.2-con2

加载后,Extjs 在组合框存储中添加选项

WPF DataGrid - 从 DataGrid ItemsSource 对象的集合值中设置唯一的每行(对象)组合框值

Ext JS 组合框值在模糊后重置为错误值

ExtJS 组合框未在面板中加载