Extjs ComboBox 替换 store

今天遇到了extjs4 combobox 需要替换 store的问题。
需求是这样的,根据不同类型combobox的store也要跟着变换。
type对应的store已经定义好了,所以就有了下面的代码。

commonTypeComboBox.addListener(
		"change",function (e,scope){
			if(scope){
				commonSourceComboBox.disable();
				if(scope == "A"){
					commonSourceComboBox.store = commonASourceStore;
					commonASourceStore.load();				
				}else if(scope == "B"){
					commonSourceComboBox.store = commonBSourceStore;
					commonBSourceStore.load();
				}
				commonSourceComboBox.enable();
			}
		},this
	);

结果发现只有第一次才是生效的。其他不生效,在看到这个store其实有一个参数在改变,所以有了下面的代码。
思路很简单,只是修改该combobox的store的参数,然后reload就可以。


commonTypeComboBox.addListener(
		"change",function (e,scope){
			if(scope){
				commonSourceComboBox.disable();
				if(scope == "A"){
					commonSourceComboBox.getStore().getProxy().extraParams.code = "A_source_type";
				}else if(scope == "B"){
					commonSourceComboBox.getStore().getProxy().extraParams.code = "B_source_type";
				}
				commonSourceComboBox.enable();
				commonSourceComboBox.getStore().load();
			}
		},this
	);

One thought on “Extjs ComboBox 替换 store

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>