如何在extjs中从一个商店创建两个组合框?

时间:2012-05-23 06:52:24

标签: extjs extjs4.1

如何从一个商店商店添加两个组合框,type字段女巫值可以是1, 2 and 3我希望第一个组合框中的1 and 2类型记录和第二个组合中的2 and 3

我的ComboBox:

Ext.define('Exp.view.settings.servers.ComboBox', {
    extend: 'Ext.form.ComboBox',
    alias : 'widget.server_combobox',

    xtype: 'combobox',
    displayField: 'name',
    valueField: 'id',
    name: 'server',
    store: 'Servers'
});

存储:(只是来自带有json阅读器的服务器的示例数据)

Ext.define('Exp.store.Servers', {
    extend: 'Ext.data.Store',
    model: 'Exp.model.Server',

    autoLoad: true,
    autoSync: true,

    data: [{
        id: 1,
        name: 'Server 1',
        type: 1
    },{
        id: 2,
        name: 'Server 2',
        type: 3
    },{
        id: 3,
        name: 'Server 3',
        type: 2
    }]
});

如果我使用商店过滤器,两个组合框都会被过滤掉。现在我创建了两个商店,但这意味着两个ajax调用服务器,我真的不喜欢它。

2 个答案:

答案 0 :(得分:6)

答案是否定的,你不能。如果您需要同一商店中的两组不同数据同时反映在任意两个UI元素中(两个网格或两个组合或其他),您需要创建商店的副本。

你可以克隆它,甚至可以创建更简单的模型(例如,组合框只需要值和名称)但是没有办法解决它。

答案 1 :(得分:1)

我认为过滤器将是最干净的方式。 这只是本地的例子。没用过app结构。 http://jsfiddle.net/ssxenon01/WpZMU/