Extjs 如何呈现组合框下拉列表

Extjs 如何呈现组合框下拉列表,extjs,combobox,Extjs,Combobox,我在筛选阵列存储时遇到问题 处境 我有两个带有数组存储的组合框。组合框1和组合框2都处于“本地”模式,并具有预定义的数组存储。当我在第一个组合框中单击并选择一行时,我在第二个组合框上应用了一个过滤器,而第二个组合框还没有被点击。问题是,第二个组合框尚未呈现其数据或html,因此未应用过滤器 当我点击第二个组合框,然后点击第一个组合框时,过滤器被应用并工作 我的问题是,如何预渲染数组\存储/组合框 我确实试着先扩展组合框,但也没有成功。请参阅注释代码 var store1 = new Ext.da

我在筛选阵列存储时遇到问题

处境

我有两个带有数组存储的组合框。组合框1和组合框2都处于“本地”模式,并具有预定义的数组存储。当我在第一个组合框中单击并选择一行时,我在第二个组合框上应用了一个过滤器,而第二个组合框还没有被点击。问题是,第二个组合框尚未呈现其数据或html,因此未应用过滤器

当我点击第二个组合框,然后点击第一个组合框时,过滤器被应用并工作

我的问题是,如何预渲染数组\存储/组合框

我确实试着先扩展组合框,但也没有成功。请参阅注释代码

var store1 = new Ext.data.ArrayStore({
      fields: ['id','name'],
      data:somedata //array of some data
});

var store2 = new Ext.data.ArrayStore({
      fields: ['id','name'],
      data:somedata //array of some data
});

var combobox1 = {
    name: 'combobox_1',
    xtype: 'combo',
    hiddenName: 'combobox_1',
    store: store1,
    displayField:'name',
    valueField:'id',
    mode:'local',
    triggerAction: 'all',
    allowBlank:true,
    emptyText:'Select...',
    listeners:{
        select: function(st, r){
            var selected = r.get('name');
            var combobox2 = Ext.getCmp('combobox2');
            //combobox2.expand();
            combobox2.store.filter([
               {
                property     : 'name',
                value        : selected,
                anyMatch     : true,
                caseSensitive: false
              }
            ]);
        },
        scope:this
    }
}

var combobox2 = {
    name: 'combobox_2',
    xtype: 'combo',
    hiddenName: 'combobox_2',
    store: store2,
    id: 'combobox2'
    displayField:'name',
    valueField:'id',
    mode:'local',
    triggerAction: 'all',
    allowBlank:true,
    emptyText:'Select...',
}

为什么不呈现第二个组合框?它们在同一表单上吗?是的,它们在同一表单上,问题是我必须单击第二个组合框渲染dropdownlist,然后才能过滤存储。否。您不必渲染下拉列表来过滤存储。您只需将存储绑定到组合框并对其进行过滤。如果combobox自己呈现,那么一切都应该很好。