读书人

EXTjs的ComboBox联动不刷新,该如何解决

发布时间: 2012-06-15 19:37:05 作者: rapoo

EXTjs的ComboBox联动不刷新
昨天终于是把联动写出来了~~
但是今天早上忽然发现,这个联动为啥不刷新呢?二级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改成别的。

[解决办法]
探讨

引用:
1.在select 事件中, 你只是想改变checkState2的值, 因此可以调用combo.store.loadData()方法。
2.你的每个data的item 的value 全部是hubei, jiangxi, anhui, 如果你选择了checkState1的值后你如何确定checkState2的item到底有没有变化, 可以把ite……

读书人网 >JavaScript

热点推荐