従属コンボボックスの 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
});
コード:
{
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();
}
}
}
}、
ありがとうございました!