依赖ExtJS的组合框

依赖ExtJS的组合框,extjs,combobox,loaddata,Extjs,Combobox,Loaddata,我的依赖组合框中的loadData()函数有问题。 我正在做一张桌子,在那里我可以创建快捷方式并修改它们 当试图修改快捷方式并将“Tab con URL”传递到“Tab con Info de sistema”时,会出现问题。 当我选择id为=“sistemas”的组合时,检测loadData函数中的错误。无数据加载使我在存储中使用函数GetMenu。 返回GetMenu函数的数据未加载到存储区 我不知道为什么。这是我的密码,有人能帮我一下吗 商店: var cmb_menu = new Ext

我的依赖组合框中的loadData()函数有问题。 我正在做一张桌子,在那里我可以创建快捷方式并修改它们

当试图修改快捷方式并将“Tab con URL”传递到“Tab con Info de sistema”时,会出现问题。 当我选择id为=“sistemas”的组合时,检测loadData函数中的错误。无数据加载使我在存储中使用函数GetMenu。 返回GetMenu函数的数据未加载到存储区

我不知道为什么。这是我的密码,有人能帮我一下吗

商店:

var cmb_menu = new Ext.data.SimpleStore({
            fields : ['id', 'menu'],
            data   : menu
            });
代码:

},


谢谢大家!

存储加载方法是异步的,这意味着加载数据后的代码立即执行,但数据尚未加载。 您需要在loadData的回调中或在load事件侦听器中单独执行其余逻辑

    {
      xtype    : "radio",
      boxLabel : "Tab con Info de sistema",
      value    : "oneway",
      tabIndex : 1,
      id       :'IdCheck',
      name     : "rt_rt_radiobutton",
      listeners: {
      check: function(){
        Ext.getCmp("sistemas").enable();
        Ext.getCmp("iconUrl").disable();
        }
      }
   },  


    {
      xtype:"radio",
      boxLabel:"Tab con URL",
      value:"twoway",
      id: 'idCheckedUrl',
      tabIndex:1,
      name:"rt_rt_radiobutton",
      listeners: {
          check: function (ctl, val) { 
                if(val){
                    Ext.getCmp("iconUrl").enable();
                    Ext.getCmp("sistemas").disable();
                    Ext.getCmp("sistemas").clearValue();
                    Ext.getCmp("menus").clearValue();
                    Ext.getCmp("items").clearValue();
                    Ext.getCmp("subMenu").clearValue();
                    Ext.getCmp("menus").disable();
                    Ext.getCmp("items").disable();
                    Ext.getCmp("subMenu").disable();
                        }
                         }
                    }
     },
    {
     xtype        : 'combo',
     store        : cmb_sistemas,
     hiddenName   : 'id_sistema',
     allowBlank   : false, 
     value       : sistemId,
     mode         : 'local',
     fieldLabel   : 'Sistemas',
     disabled     : true,
     name         : 'sistemas',
     id           : 'sistemas',
     anchor       : '90%',
     displayField : 'sistema',
     triggerAction: 'all',  //rdiaz
     emptyText    : 'Seleccione un sistema',//rdiaz
     editable     : false, //rdiaz
     valueField   : 'id',
     listeners    : {
        select: function (){
            idSistema = this.getValue();
                nombreSistema= this.getRawValue();
                var menu = Ext.getCmp("menus");
                iMenu = getMenu(idSistema);
                //menu.store.clear();
                menu.store.loadData(iMenu, true);
                menu.enable();
                var items = Ext.getCmp("items");    
                //menu.clearValue();    
                //menu.store.removeAll();//rdiaz        
                items.clearValue();
                items.disable();
                var subMenues= Ext.getCmp("subMenu");   
                subMenues.clearValue();
                subMenues.disable();
                }                                            
            }
    },
    {
    xtype        : 'combo',
    store        : cmb_menu,
    hiddenName   : 'id',
    valueField   : 'id',
    value        : menuID, 
    mode         : 'local',
    allowBlank   : false,
    fieldLabel   : 'menu',
    disabled     : true,
    triggerAction: 'all',//rdiaz
    emptyText    : 'Seleccione un menu',//rdiaz
    editable     : false, //rdiaz
    name         : 'menus',
    id           : 'menus',
    anchor       : '90%',
    displayField : 'menu',
    listeners    : {
        select: function () {                                           
                                                        selectedMenu = this.getValue();
            Ext.getCmp("subMenu").clearValue(); 
            //alert(selectedMenu);
            idSistema = Ext.getCmp("sistemas").getValue();  
            mItems    = getItemsMenu(selectedMenu, idSistema);
            if($.trim(selectedMenu) == "000060000000010000"){
                var subMenues= Ext.getCmp("subMenu");   
                subMenues.store.loadData(mItems);
                subMenues.enable();
                var items    = Ext.getCmp("items");
                items.clearValue();
                items.enable();
                }else{
                    var subMenues= Ext.getCmp("subMenu");   
                    subMenues.store.loadData(mItems);
                    subMenues.disable();
                    var items    = Ext.getCmp("items"); 
                    //alert(mItems);
                    items.store.loadData(mItems);
                    items.clearValue();
                    items.enable();
                                                            }
                                                        }

        }