关于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
扫一扫加微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网