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 继承Ext.data.Store不起作用原因分析及解决
有关Extjs 继承Ext.data.Store 不起作用的原因有很多种,接下来与大家分享下,本人遇到的,这个Store写出来之后 是不会起到作用的,感兴趣的朋友可以看下详细的原因及解决方法2013-04-04ExtJs3.0中Store添加 baseParams 的Bug
今天发现了一个ExtJS3.0中的Bug 以前用2.0的时候,喜欢这样增加参数2010-03-03关于extjs treepanel复选框选中父节点与子节点的问题
实现带有复选框的树,选中父节点时,选中所有子节点。取消所有子节点时,才能取消根节点,感兴趣的朋友可以了解下本文2013-04-04EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
用了一个方法解决了此问题,但是老是感觉这样解决了很不爽,各位有没有遇到过这种问题,请指点一下。2011-04-04关于viewport,Ext.panel和Ext.form.panel的关系
那个深入浅出ext作者比我还懒 viewport存放Ext.panel对象,其容器中的成员可以以borderlayout方式布局2009-05-05
最新评论