【问题标题】:extjs combobox modelextjs 组合框模型
【发布时间】:2012-06-20 16:40:33
【问题描述】:

有没有办法在不创建 js 模型(ExtJS 4.1)的情况下将商店绑定到 ExtJS ComboBox?
要填充用户组合框,我总是需要先设置模型?我想为每个组合框跳过以下代码:

Ext.define('User',{extend:'Ext.data.Model',idProperty:'Id',fields:['Id','Name']});

【问题讨论】:

    标签: extjs combobox


    【解决方案1】:

    你是对的,尼尔!
    我已经找到了如何使用它:

    var myStore = Ext.create('Ext.data.Store',{
        fields:['Id','Name'],
        data:[
            {Id:0,Name:'Yes'},
            {Id:1,Name:'No'},
            {Id:2,Name:'Maybe'}
        ]
    });
    
    var pnl = Ext.create('Ext.panel.Panel', {
        xtype: 'panel',
        title: 'My Panel',
        items: [{
            id:'cboField1'
            xtype:'combobox',
            fieldLabel:'My Field',
            displayField:'Name',
            valueField:'Id',
            queryMode:'local',
            store: myStore
        }]
    });
    

    【讨论】:

      【解决方案2】:

      我发现创建具有两个字段 id、name 的简单模型非常有用,然后在预定义值列表的所有静态存储(我用于组合框)上使用此模型。

      【讨论】:

        【解决方案3】:

        如果您使用 Architect,您可以在 ComboBox 的存储属性中指定一个数组。如果您只想要一个静态的“标题”组合框,则没有必要创建额外的商店和模型。

        xtype:'combo',
        fieldLabel:'Title',
        name:'division',
        queryMode:'local',
        store:['Mr','Mrs','Ms'],
        displayField:'title',
        autoSelect:true,
        forceSelection:true
        

        附言为了将存储属性更改为 Architect 中的本地数组,您需要选择存储文本左侧的小图标并将其更改为数组而不是存储。

        【讨论】:

          【解决方案4】:

          在 Extjs 中的任何情况下,您都不需要在商店中设置模型。设置 store 的 fields 属性。

          http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-cfg-fields

          另外,请考虑本地数据的商店的数据属性。

          http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-property-data

          【讨论】:

            猜你喜欢
            • 2011-08-19
            • 2012-01-11
            • 1970-01-01
            • 2012-10-10
            • 2012-06-29
            • 2011-11-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多