问题描述:
在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;
}
}
}
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“ExtJS PropertyGrid中使用Combobox选择值问题”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。