Ext combox 双关联初始化问题
rikugun
2008-06-16
请教一下各位:
最近在做combox的双关联的时候发现一个问题,第一次选择第一个选项的时候,不能自动过滤第二个选项的值. 如: 先选省份时,城市那个选项不能自动过滤为响应省份的城市.但是先点一下城市,再选省份的话就没有问题.估计是刚开始城市这个combox没有初始化的原因. 还有一个问题就是,我是用一个按键,点击以后弹出一个formpanel的window用来输入数据的,第一次点击2个combo都正常显示,但是关闭后再点击打开时就发现第二个combo消失了,第一个很正常. 各位大大是如何解决的呢,谢谢 下面是一个汽车厂商和车系的双关联代码,也有同样的问题. createForm: function(){ return new Ext.FormPanel({ bodyStyle: 'padding-top:6px', defaultType: 'textfield', labelAlign: 'right', labelWidth: 80, labelPad: 0, frame: true, defaults: { width: 150 }, items: [{ fieldLabel: '车型名称', name: 'name', allowBlank: false, blankText: '请填写品牌名称' }, new Ext.form.ComboBox({ emptyText: '请选择厂商类型', allowBlank: false, fieldLabel: '厂商类型', hiddenName: 'type', displayField: 'name', valueField: 'val', typeAhead: true, triggerAction: 'all', mode: 'local', store: car.data.prttype, listClass: 'x-combo-list-small', listeners: { 'beforeselect': function(box, record, index){ Ext.getCmp('prt').store.clearFilter(); Ext.getCmp('prt').clearValue(); Ext.getCmp('prt').store.filter('type', record.get('value')); } } }), new Ext.form.ComboBox({ id: 'prt', emptyText: '请选择厂商名称', allowBlank: false, fieldLabel: '生产厂商', hiddenName: 'prt_id', displayField: 'name', valueField: 'id', typeAhead: true, triggerAction: 'all', store: car.data.prt_store, mode: 'local', listClass: 'x-combo-list-small' })] }); } //下面是数据,用后台生成的JS数据 Ext.namespace('car','car.data'); //车商类型 car.data.prttype=[[false,'国内'],[true,'国外']]; //车商 car.data.prt= [[1,'Benz',true],[2,'奥迪',false],[3,'BMW',false],[4,'马自达',false],[5,'丰田 ',true],[6,'本田',true],[7,'三菱',true],[8,'通用',true],[9,'陆虎',true],[10,'陆虎 ',true],[11,'lotus',true]]; car.data.prt_store=new Ext.data.SimpleStore({ fields:['id','name','type'], data:car.data.prt }); //车系 car.data.classes=[[1,'Fz',1],[2,'ABC',2],[3,'CC',9],[4,'dadas',3],[5,'561',8],[6,'A8',2],[7,'A6',2]]; car.data.class_store=new Ext.data.SimpleStore({ fields:['id','name','prt_id'], data:car.data.classes }); |
|
rikugun
2008-06-16
刚刚发帖就发现第一个问题javaeye论坛上就有解决方法,我真是猪啊.
不过第二个问题存在 第一个问题解决方法 http://extjs.com/learn/Tutorial:Linked_Combos_Tutorial_for_Ext_2 http://www.iteye.com/topic/125861 new Ext.form.ComboBox({ id: 'prt', emptyText: '请选择厂商名称', allowBlank: false, fieldLabel: '生产厂商', hiddenName: 'prt_id', displayField: 'name', valueField: 'id', typeAhead: true, triggerAction: 'all', store: car.data.prt_store, mode: 'local', listClass: 'x-combo-list-small', [b]lastQuery:'' //加入这行,不过在Ext API里头没有找到这个参数[/b] }) |