关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
问题反馈
如下图所示,当选择第2行纪录,编号为XXXX-00101-200401003,然后再选择第3行纪录,GridLookupEdit界面不会有任何不变化。

原因
是因为选择了第2行,控件EditValue对应的值:XXXX-00101-200401003,再选择第3行,第3行Key的值与第2行的值是一致的,控件视为没有改动,所以不会触发EditValueChanged事件。
Key的值在绑定控件数据源指定的,对应:ValueMember。
解决方案
绑定数据源的ValueMember必须是主键字段,值必须唯一。
C# Code:
/// <summary>
/// 绑定参照字段的数据源
/// </summary>
/// <param name="edit">参照字段输入控件</param>
/// <param name="dataSource">数据源</param>
/// <param name="displayMember">显示字段</param>
/// <param name="valueMember">取值字段</param>
public static void BindingLookupEditDataSource(LookUpEdit edit, object dataSource, string displayMember, string valueMember)
{
BindingLookupEditDataSource(edit.Properties, dataSource, displayMember, valueMember);
}
/// <summary>
/// 绑定表格内列参照字段的数据源
/// </summary>
/// <param name="edit">参照字段控件</param>
/// <param name="dataSource">数据源</param>
/// <param name="displayMember">显示字段</param>
/// <param name="valueMember">取值字段</param>
public static void BindingLookupEditDataSource(RepositoryItemLookUpEdit edit, object dataSource, string displayMember, string valueMember)
{
edit.DisplayMember = displayMember;
edit.ValueMember = valueMember;//必须是主键字段,值唯一
edit.DataSource = dataSource;
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// 绑定参照字段的数据源
/// </summary>
/// <param name="edit">参照字段输入控件</param>
/// <param name="dataSource">数据源</param>
/// <param name="displayMember">显示字段</param>
/// <param name="valueMember">取值字段</param>
public static void BindingLookupEditDataSource(LookUpEdit edit, object dataSource, string displayMember, string valueMember)
{
BindingLookupEditDataSource(edit.Properties, dataSource, displayMember, valueMember);
}
/// <summary>
/// 绑定表格内列参照字段的数据源
/// </summary>
/// <param name="edit">参照字段控件</param>
/// <param name="dataSource">数据源</param>
/// <param name="displayMember">显示字段</param>
/// <param name="valueMember">取值字段</param>
public static void BindingLookupEditDataSource(RepositoryItemLookUpEdit edit, object dataSource, string displayMember, string valueMember)
{
edit.DisplayMember = displayMember;
edit.ValueMember = valueMember;//必须是主键字段,值唯一
edit.DataSource = dataSource;
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
LookupEdit.EditValueChanged事件内给其它文本框赋值无效或变回原来的值
LookupEdit 支持录入新值 - ProcessNewValue 事件
EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值
关于Click事件sender参数问题
关于SetEditorBindingValue方法的使用
【原创】C# Dev用户自定义组件,自动下拉弹框表格过滤数据组件ucMyLookUpEdit
LookupEdit关联更新其它文本输入框的值(自动带出参考数据并赋值)
取LookupEdit组件数据源当前资料行某字段的值
详解DevExpress.LookUpEdit控件实现自动搜索定位功能|C/S开发框架
C# DevExpress高级篇 | GridLookUpEdit组件使用|C/S开发框架
C# DevExpress教学 GridLookUpEdit组件表格下拉组件使用|C/S开发框架
Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案
手工绑定某个下拉数据窗口(LookUpEdit)的数据源
使用DataBinderTools工具类绑定下拉LookupEdit组件数据源
关于NavBarControl点击ExpandButton缩放后不能控制Dock组件的问题
关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子
LookupEdit.EditValueChanged事件内给其它文本框赋值无效或变回原来的值
LookupEdit 支持录入新值 - ProcessNewValue 事件
EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值
关于Click事件sender参数问题
关于SetEditorBindingValue方法的使用
【原创】C# Dev用户自定义组件,自动下拉弹框表格过滤数据组件ucMyLookUpEdit
LookupEdit关联更新其它文本输入框的值(自动带出参考数据并赋值)
取LookupEdit组件数据源当前资料行某字段的值
详解DevExpress.LookUpEdit控件实现自动搜索定位功能|C/S开发框架
C# DevExpress高级篇 | GridLookUpEdit组件使用|C/S开发框架
C# DevExpress教学 GridLookUpEdit组件表格下拉组件使用|C/S开发框架
Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案
手工绑定某个下拉数据窗口(LookUpEdit)的数据源
使用DataBinderTools工具类绑定下拉LookupEdit组件数据源
关于NavBarControl点击ExpandButton缩放后不能控制Dock组件的问题
关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子
其它资料:
什么是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内容管理系统 |
在线客服
