论坛首页 Web前端技术论坛

过滤Combox 需要多触发一次

浏览 11600 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-21  
两个Combox 联动,第二个combox B内容根据第一个combox A的值作filter.
只有combox A选择以后,B 才被激活。
但是,第一次选中A以后,必须点击,显示一次下拉列表,然后再次选择A的一个值
才能正确filter,以后就都正确了.(就是初始化的时候必须多做一次选择 )
var form_kind_combo=new Ext.form.ComboBox({
			            fieldLabel: '类别',
			            hiddenName: 'proid',
			            allowBlank:false,
			            store: proidds,
			            valueField:'id',
			            displayField:'name',
			            typeAhead: true,
			            editable: true,
			            mode: 'local',
			            triggerAction: 'all',
			            emptyText:'请选择类别...',
			            selectOnFocus:true
			      });

var form_name_combo = new Ext.form.ComboBox({
			            fieldLabel: '名称',
			            hiddenName: 'kindid',
			            allowBlank:false,
			            store: productds,
			            valueField:'id',
			            displayField:'name',
			            typeAhead: true,
			            editable: true,
			            mode: 'local',
			            triggerAction: 'all',
			            emptyText:'请选择名称...',
			            selectOnFocus:true
			      });

var updateNameCombo = function(combofield,record){
		form_name_combo.enable();
		form_name_combo.clearValue();
		form_name_combo.store.filter('prodid',record.get('id'),true);
}

var namecomboselected = function(combofield,record){
		alert(record.get('id') + " " +record.get('name')+" " +record.get('prodid'));
}
form_kind_combo.on('beforeselect',updateNameCombo,form_kind_combo);
form_name_combo.on('select',namecomboselected,form_name_combo);
   发表时间:2007-09-24  
兄弟,你的问题解决了吗?我的联动也出现你这种问题.....
0 请登录后投票
   发表时间:2007-09-24  
你有没有在绑定combobox2的store之前,先把store.load()试试?
0 请登录后投票
   发表时间:2007-09-24  
恩,我就是先load store,然后render combox得。
估计是数据缓存的问题。
我在extjs.com上面也问了,可能的答案:http://blog.taragana.com/index.php/archive/extjs-hack-dynamic-combobox-remote-on-demand-loading-with-local-filtering/
还没有试验过。
0 请登录后投票
   发表时间:2007-09-26  
我花了半小时写了个原型,测试了半天,还是没有发现好的解决办法,貌似楼上给出的那个文章的说法可能比较靠谱
0 请登录后投票
   发表时间:2007-09-28  
form_kind_combo.on('change',updateNameCombo,form_kind_combo);试试看
0 请登录后投票
   发表时间:2007-10-05  
楼主的问题解决了?
0 请登录后投票
   发表时间:2007-10-08  
phantomblue 写道
恩,我就是先load store,然后render combox得。
估计是数据缓存的问题。
我在extjs.com上面也问了,可能的答案:http://blog.taragana.com/index.php/archive/extjs-hack-dynamic-combobox-remote-on-demand-loading-with-local-filtering/
还没有试验过。

  没错,我们就是用他说的那个方案解决的
0 请登录后投票
   发表时间:2007-10-26  
不过,用了那个方法后,再次点击comboboxA,comboboxB就不显示啦,有哪位大侠解决了的呢》?
0 请登录后投票
   发表时间:2008-02-24  
是啊,这个问题到底该怎么解决啊
在http://ajaxbbs.net/blog/Ext-ComboBox-Filter-Issue/看到说解决了,但没看明白他是怎么还原的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics