昨天终于是把联动写出来了~~
但是今天早上忽然发现,这个联动为啥不刷新呢?二级combobox初始化显示data2的数据,选择一级combobox后数据变成data3了,但是从新选择的时候data3数据不变了……。
是那个reload()方法没执行么?
我看了看API 似乎reload()是store的方法,但是我写成combo.store.reload();也不对啊……
报的错变成this.proxy为空或不是对象 了。是我数据写的不对么?
求助啊求助……!
下面是代码(写的有点儿乱,见谅):
- JScript code
var data=[['aaa,'hubei'],['bbb,'jiangxi'],['ccc','anhui']]; var store = new Ext.data.SimpleStore({ fields: ['name', 'value'], data : data }); var data2=[['p1','hubei'],['p2','jiangxi'],['p3','anhui']]; var store2 = new Ext.data.SimpleStore({ fields: ['name', 'value'], data : data2 }); { xtype:'combo', store:store, emptyText:'请选择...', id:'checkState', mode:'local', triggerAction:'all', displayField:'name', valueField : 'value', listeners:{ "select":function(){ var v1 = Ext.get("checkState").dom.value; var data3=[['t1'+v1,'hubei'],['t2','jiangxi'],['t3','anhui']]; var store3 = new Ext.data.SimpleStore({ fields: ['name', 'value'], data : data3 }); var combo = Ext.getCmp("checkState2"); combo.store=store3; combo.reload(); } } }, { xtype:'combo', store:store2, emptyText:'请选择...', id:'checkState2', mode:'local', triggerAction:'all', displayField:'name', valueField : 'value', listeners:{ "select":function(){ alert(Ext.get("checkState2").dom.value); //获取id为combo的值 } } }
------解决方案--------------------
1.在select 事件中, 你只是想改变checkState2的值, 因此可以调用combo.store.loadData()方法。
2.你的每个data的item 的value 全部是hubei, jiangxi, anhui, 如果你选择了checkState1的值后你如何确定checkState2的item到底有没有变化, 可以把item改成别的。
------解决方案--------------------