关于SetEditorBindingValue方法的使用
关于SetEditorBindingValue方法的使用
功能需求
在开发应用中,通常当选择一个值时要自动带出相关数据(给其它输入框组件赋值),比如一个选择客户的LookupEdit组件,取名为txtCustomer,选择客户的同时要自动带出客户的名称、联系人以及联系电话在对应的输入框中显示出来。我们可以在EditValueChanged、Validating、或者TextChanged事件内处理。
有一种异常情况
假设在EditValueChanged事件内处理上述需求,当选择客户后能自动带出联系人及电话号码,但是客户选择框本身被莫名其妙清空了!
原因:若在EditValueChanged事件内给其他绑定数据源的组件赋值时,会重置当前组件的EditValue的值。
解决方案
必须在EditValueChanged事件内第一行代码调用SetEditorBindingValue(txtCustomer,txtCustomer.EditValue),但是这种处理可能造成死循环,给EditValue赋值时又调用了EditValueChanged事件。
改为以下写法,注意第3个参数:
SetEditorBindingValue(txtCustomer,txtCustomer.EditValue,false);
完整的写法如下:
private void txtCustomer_EditValueChanged(object sender, EventArgs e)
{//当选择客户,自动带出客户的名称、联系人、联系电话
//不给自己的EditValue赋值,参数setEditorValue=false
EditorBinding.SetEditorBindingValue(txtCustomer, txtCustomer.EditValue, false);
//根据编号编号查询客户详细资料
Customer customer = new bllCustomer().Find(txtCustomer.EditValue.ToString());
//除sender外,给其它绑定的数据源及EditValue赋值,setEditorValue=true
EditorBinding.SetEditorBindingValue(txtCustomerName, customer.CustomerName, true);
EditorBinding.SetEditorBindingValue(txtCustomerAttn, customer.Attn, true);
EditorBinding.SetEditorBindingValue(txtCustomerTel, customer.Tel, true);
VIP用户下载附件:
参考文档:
关于ORM实体类主键设置的几点建议(Tag:复合主键,ISID,PK)|C/S开发框架
CSFrameworkV6 - 单表基础资料关于res扩展模型处理方案
.NET5 Core 关于LINQ查询使用DateDiff解决方案|C/S开发框架
Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
关于CSFramework.WebApi框架NuGet程序包版本升级版本统一问题
关于NavBarControl点击ExpandButton缩放后不能控制Dock组件的问题
关于开发框架字段名管理功能(frmFieldNameMgr类)
关于购买阿里云ECS服务器提供的双IP用途
CSFramework.DB关于设置全局变量CommandTimeOut/ConnectionTimeOut的测试案例
关于C/S快速开发框架采用的文本加密解密策略|C/S框架网
关于版权问题:如果使用贵公司的框架版权如何进行登记和授权?
关于C/S框架网C#.NET快速开发框架现场培训
关于Winform框架及C/S快速开发平台
关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子
关于业务单据主从表导入数据,销售订单(SO)的数据导入到销售退货单(SR)
关于ORM实体类主键设置的几点建议(Tag:复合主键,ISID,PK)|C/S开发框架
CSFrameworkV6 - 单表基础资料关于res扩展模型处理方案
.NET5 Core 关于LINQ查询使用DateDiff解决方案|C/S开发框架
Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
关于CSFramework.WebApi框架NuGet程序包版本升级版本统一问题
关于NavBarControl点击ExpandButton缩放后不能控制Dock组件的问题
关于开发框架字段名管理功能(frmFieldNameMgr类)
关于购买阿里云ECS服务器提供的双IP用途
CSFramework.DB关于设置全局变量CommandTimeOut/ConnectionTimeOut的测试案例
关于C/S快速开发框架采用的文本加密解密策略|C/S框架网
关于版权问题:如果使用贵公司的框架版权如何进行登记和授权?
关于C/S框架网C#.NET快速开发框架现场培训
关于Winform框架及C/S快速开发平台
关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子
关于业务单据主从表导入数据,销售订单(SO)的数据导入到销售退货单(SR)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
