Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
依赖ExtJS的组合框_Extjs_Combobox - Fatal编程技术网

依赖ExtJS的组合框

依赖ExtJS的组合框,extjs,combobox,Extjs,Combobox,我试图创建一个combobox,该combobox依赖于其他具有默认值的combobox,但必须将其自身的数据加载到combobox的侦听器中。将this.store.loadData(todoItems)与todoItems一起用作四个位置的数组时,我遇到了问题 这是一家商店: var cmb_items = new Ext.data.SimpleStore({ fields : ['itemId', 'item'], data : itemsMenu })

我试图创建一个combobox,该combobox依赖于其他具有默认值的combobox,但必须将其自身的数据加载到combobox的侦听器中。将
this.store.loadData(todoItems)
todoItems
一起用作四个位置的数组时,我遇到了问题

这是一家商店:

var cmb_items = new Ext.data.SimpleStore({
        fields : ['itemId', 'item'],
        data   : itemsMenu
});
我不知道为什么。这是我的密码,有人能帮我一下吗

{    
    xtype          : 'combo',
    store          : cmb_items,
    hiddenName     : 'id_item',
    valueField     : 'id_item',
    mode           : 'local',
    allowBlank     : false,
    value          : nombreItem,
    fieldLabel     : 'items',
    disabled       : true,
    name           : 'items',
    triggerAction  : 'all',
    emptyText      : 'Seleccione un item',
    editable       : false,
    id             : "items",
    anchor         : '90%',
    displayField   : 'item',
    listeners      : {
                select: function () {
                    idSistema = Ext.getCmp("sistemas").getValue();  
                    selectedMenu = Ext.getCmp("menus").getValue();
                    todoItems = getItemsMenu(selectedMenu,idSistema);
                    //alert(todoItems)
                    this.store.loadData(todoItems);
                    idItem     = this.getValue();

                        alert(idItem);          // RETURN UNDEFINED

                    for(i=0;i<this.store.getCount();i++){
                         if(todoItems[i][0]==idItem){
                             nombreItem = todoItems[i][1];
                             outItem    = todoItems[i][2];
                         }
                     }
            }                                    
             }
}, 
{
xtype:'组合',
门店:cmb_项目,
hiddenName:“id_项”,
valueField:'id_item',
模式:“本地”,
allowBlank:false,
值:nombreItem,
fieldLabel:'项目',
残疾人:对,,
名称:'项目',
触发动作:“全部”,
emptyText:“选择联合国项目”,
可编辑:false,
id:“项目”,
主播:90%,
displayField:'项目',
听众:{
选择:函数(){
idSistema=Ext.getCmp(“sistemas”).getValue();
selectedMenu=Ext.getCmp(“菜单”).getValue();
todoItems=getItemsMenu(selectedMenu,IDListMA);
//警报(todoItems)
this.store.loadData(todoItems);
idItem=this.getValue();
警报(idItem);//返回未定义

对于(i=0;i我对代码不太清楚,但如果您正在寻找combo依赖于另一种方法,请尝试我的示例

    var countryStore = new Ext.data.SimpleStore({
        fields: ['alpha2code','name'],
        data: [["BE","Belgium"],["BR","Brazil"],["BG","Bulgaria"]]
    });   

    function getState(stCode){
        var data=[];  
        switch(stCode){
            case 'BE':
                data=[["BE","Belgium1"],["BR","Brazil1"],["BG","Bulgaria1"]];
                break;

            case 'BR':
                data=[["BE","Belgium2"],["BR","Brazil2"],["BG","Bulgaria2"]];
                break;

            case 'BG':
                data=[["BE","Belgium3"],["BR","Brazil3"],["BG","Bulgaria3"]];
                break;
        }
        return data;  
    };

    var statesStore = new Ext.data.SimpleStore( {
        fields: ['statecode','name']  
    });

    var stateForm = new Ext.form.ComboBox({
        fieldLabel : 'Country',
        id : 'countryCombo',
        name : 'country',
        msgTarget : 'side',
        triggerAction : 'all',
        lazyRender : true,
        store : countryStore,
        mode: 'local',
        valueField : 'alpha2code',
        emptyText : 'Create or Select an partment',
        displayField : 'name',
        editable : true,
        listeners:{
            'select': function(combo,value,index){ 
                debugger;
                var input = combo.getValue();           
                var stateCombo=Ext.getCmp('statesCombo');
                //stateCombo.clearValue();
                //stateCombo.store.baseParams.countryID=input;
                stateCombo.store.loadData(getState(input));
            }
        }
    });

    var stateForm1 = new Ext.form.ComboBox({
        fieldLabel : 'States',
        id : 'statesCombo',
        name : 'states',
        mode: 'local',
        msgTarget : 'side',
        triggerAction : 'all',
        lazyRender : true,
        store : statesStore,
        valueField : 'statecode',
        emptyText : 'Create or Select an Department',
        displayField : 'name',
        editable : true
    });

    var formPanel = new Ext.form.FormPanel({
        title: 'World',
        labelWidth: 120,
        width: 350,
        padding: 10,
        items:[stateForm,stateForm1]
    });

    formPanel.render(document.body);

谢谢大家!我可以解决这个问题,这个论坛不允许我发布新用户的答案。itemID(字段)必须与hiddenName valueFields同名。我有,hiddenName valueFields=id\u item抱歉,我的英语不好。重复一遍,谢谢!