ExtJS绑定筛选器,并在子组合框中选择默认值

时间:2018-08-02 21:47:54

标签: extjs sencha-cmd

我正在尝试创建两个组合框。第一个显示国家名称,第二个显示省/州。这个想法是基于第一个选择过滤第二个组合,并将“ VisitingCountryProvince”的值作为默认选择。 以下代码的问题是,它没有基于第一个组合框选择默认值。如果删除绑定过滤器,第二个组合框将显示正确的值'VisitingCountryProvince'。

有什么主意吗?

{
    xtype: 'fieldset',
    title: 'Visiting Country',
    layout: 'anchor',
    anchor: '-10',
    collapsible: false,
    defaults: {
        xtype: 'combo',
        labelStyle: 'font-weight: bold;',
        flex: 1,
        anchor: '0',
        editable: false,
        forceSelection: true,
        allowBlank: false,
        emptyText: 'Select...',
        queryMode: 'local',
    },
    items: [{
        name: 'VisitingCountry',
        fieldLabel: 'Main',
        reference: 'visitingCountryFieldRef',
        publishes: 'value',
        store: {
            type: 'arraydropdownstore'
        },
        valueField: 'value',
        displayField: 'value'
    }, {
        name: 'VisitingCountryProvince',
        fieldLabel: 'Sub',
        store: {
            type: 'array',
            fields: ['value', 'countryName']
        },
        bind: {
            filters: {
                property: 'countryName',
                value: '{visitingCountryFieldRef.value}'
            }
        },
        valueField: 'value',
        displayField: 'value'
    }]
},

我可以在这里找到最接近问题的答案,How to use combo "publishes" value & bindings to filter store on another combo

我刚刚发现,我可以过滤或选择默认值,但不能同时选择两者。如何过滤并绑定来自过滤列表的默认值?

1 个答案:

答案 0 :(得分:0)

您需要在第一个组合框的“ select”事件处理程序中编写过滤第二个组合存储的值的逻辑。

map_value