依赖ExtJS的组合框
我试图创建一个combobox,该combobox依赖于其他具有默认值的combobox,但必须将其自身的数据加载到combobox的侦听器中。将依赖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 })
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抱歉,我的英语不好。重复一遍,谢谢!