ExtJS PropertyGrid中使用Combobox选择值问题
更新时间:2010年06月13日 00:06:26 作者:
在PropertyGrid中使用Combobox来选择值时,得到的应该是displayField的值,但是在确认选择的时候却显示了valueField的值
问题描述:
在PropertyGrid中使用Combobox来选择值时,得到的应该是displayField的值,但是在确认选择的时候却显示了valueField的值,例如,下拉选择性别,displayField分别为'男','女',对应的valueField分别为'0','1',本来选择应该显示中文描述,但是却显示成了0或者1这样的标识数据,这对用户来说应该不能接受的。
解决:
拦截Grid的beforepropertychange事件,设置好显示的值,之后返回false,阻止修改事件中的验证重置。
例如:
listeners: {
beforepropertychange: function(source, recordId, value, oldValue){
if(recordId == 'BRAND_NAME'){
var record = this.getStore().getById(recordId);
this.suspendEvents();
record.set("value", cmbBrandEdit.store.getAt(cmbBrandEdit.store.find('BRAND_ID', value)).get('BRAND_NAME'));
record.commit();
this.resumeEvents();
return false;
}
}
}
在PropertyGrid中使用Combobox来选择值时,得到的应该是displayField的值,但是在确认选择的时候却显示了valueField的值,例如,下拉选择性别,displayField分别为'男','女',对应的valueField分别为'0','1',本来选择应该显示中文描述,但是却显示成了0或者1这样的标识数据,这对用户来说应该不能接受的。
解决:
拦截Grid的beforepropertychange事件,设置好显示的值,之后返回false,阻止修改事件中的验证重置。
例如:
复制代码 代码如下:
listeners: {
beforepropertychange: function(source, recordId, value, oldValue){
if(recordId == 'BRAND_NAME'){
var record = this.getStore().getById(recordId);
this.suspendEvents();
record.set("value", cmbBrandEdit.store.getAt(cmbBrandEdit.store.find('BRAND_ID', value)).get('BRAND_NAME'));
record.commit();
this.resumeEvents();
return false;
}
}
}
相关文章
ExtJS PropertyGrid中使用Combobox选择值问题
在PropertyGrid中使用Combobox来选择值时,得到的应该是displayField的值,但是在确认选择的时候却显示了valueField的值2010-06-06
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Extjs的Panel和Window等组件在默认情况下是带边框的,通常情况下,单独使用没有什么关系,但是将Panel作为Window组件的子组件时就会出现双重边框的现象于是想办法将两重边框去掉,变成单边框,感兴趣的朋友可以了解下2013-01-01
EXTjs4.0的store的findRecord的BUG演示代码
EXTjs4.0 的store的findRecord的BUG:当判断ID=1的时候,遇到1开头的ID的时候,这个时候就判断出问题了,有类似问题的朋友可以了解下哈2013-06-06
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
用了一个方法解决了此问题,但是老是感觉这样解决了很不爽,各位有没有遇到过这种问题,请指点一下。2011-04-04


最新评论