ExtJs组合强制选择第一个项目(带示例代码)

时间:2011-05-13 14:32:22

标签: javascript extjs

我有一个组合B被其他组合A加载(由'select'监听器触发)
一旦B填充,我看到所有项目,但现在从组合B中的下拉列表中, 我强行用鼠标选择第一个项目 我只能通过输入
来选择其他项目
请帮忙!!!!

组合A的代码


{
    xtype: 'combo',
    displayField: 'value',
    emptyText: 'Please select A first',
    fieldLabel: 'Combo A',
    id: 'comboA',
    maxHeight: 240,
    mode: 'local',
    triggerAction: 'all',
    typeAhead: true,
    typeAheadDelay: 100,
    valueField: 'id',
    store: new Ext.data.JsonStore({
        url: '/cgi-bin/server.cgi',
        fields: ['id', 'name'],
        baseParams: {
            action: 'getAList'
        },
        autoLoad: true,
        root: 'aList'
    }),
    listeners: {
        'select': {
            fn: function(){
                var comboB = Ext.getCmp('comboB');
                comboB.clearValue();
                comboB.store.removeAll();
                comboB.store.reload({
                    params: {
                        id: this.getValue()
                    }
                })
            }
        }
    }
}


组合B的代码:


{
    xtype: 'combo',
    displayField: 'item',
    editable: true,
    emptyText: 'Select a Combo A first',
    fieldLabel: 'Combo B',
    id: 'comboB',
    lazyInit: true,
    maxHeight: 240,
    mode: 'local',
    triggerAction: 'all',
    typeAhead: true,
    valueField: 'id',
    width: 220,
    store: new Ext.data.JsonStore({
        url: '/cgi-bin/server.cgi',
        root: 'bList',
        autoLoad: false,
        fields: ['id,', 'item'],
        baseParams: {
            action: 'getBList'
        },
        listeners: {
            'beforeload': function(){
                Ext.getCmp('comboB').disable();
            },
            'load': function(){
                Ext.getCmp('comboB').enable();
            }
        }
    })
}

1 个答案:

答案 0 :(得分:0)

不确定完全错误在哪里,但我怀疑你的comboA中的这一部分没有按预期被解雇 -

comboB.store.reload({
                params: {
                    id: this.getValue()
                }
            })

所以comboB仍然被禁用。当你点击comboB触发器时,它会加载商店并且comboB商店的加载监听器正在按预期启动以启用组合。

尝试使用一些调试语句或单步执行上面的代码。