Ext.form.ComboBox级联菜单问题

Ext.form.ComboBox级联菜单大家都应该会吧,即使不会,这个问题在网上一搜,也遍地都是,可是我在做级联菜单的时候遇到了一个问题,这篇文章仅献给和我遇到了共同问题的人

var dwStore = new Ext.data.JsonStore({
url:”bdzJbqk.html?m=loaddwdata”,
root:”dwresults”,
totalProperty:”dwtotalCount”,
fields:[“id”,”name”]
});
dwStore.load();

var bdzStore = new Ext.data.JsonStore({
url:”bdzJbqk.html?m=loadbdzdata”,
root:”bdzresults”,
totalProperty:”dwtotalCount”,
fields:[“id”,”name”]
});

var bdzcombo = new Ext.form.ComboBox({
id:’bdz’,
width:60,
listWidth:58,
store: bdzStore,
value: “全部”,
valueField :”id”,
displayField: “name”,
forceSelection: true,
editable: false,
triggerAction: ‘all’,
//mode : ‘local’,
allowBlank:true
});

var dwcombo = new Ext.form.ComboBox({
width:150,
id:’search’,
store: dwStore,
value: ‘${cdssdw}’,
valueField :”id”,
displayField: “name”,
forceSelection: true,
hiddenName:’test’,
editable: false,
triggerAction: ‘all’,
allowBlank:true,
emptyText:’请选择’,
fieldLabel: ‘多选下拉ComBo’,
mode : ‘remote’,
listeners:{
select :function(dwcombo){
bdzStore.load({params:{cdssdw: dwcombo.getValue()}});
}
}
});

现在我需要在点击dwcombo 下拉框的时候出发bdzcombo 并给它加载数据

我只说我遇到的问题了,关于怎么加载的我就认为大家都会了

我遇到了这样一个问题,当我点击第一级菜单的时候,第二级菜单并没有加载数据

反复试了几次之后我发现,必须先激活第二级的菜单,再点击第一级菜单,这时才能给第二级菜单加载数据

那么第二级菜单真的在加载页面时没有自动激活吗

我去API里看了一下,ComboBox就没有激活自身的方法

细心的朋友会发现这样产生效果是第二级菜单下面事实上是有两个格子

我才意思到我忘记了一个重要的属性,就是“mode”

试了之后,果然解决了这个问题

我设置了mode:’local’

原来是这样的,当我们点击第一级菜单的时候,由于select事件,就已经加载了第二级菜单的数据

那么我们在点击第二级菜单的时候,还用不用去服务器端去数据呢?

当然不用了,因为数据已经取过来了

我们只需要在本地取就可以了

而mode默认的值为remote

呵呵,妙哉……

发表评论

返回顶部