EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值
EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值
问题描述:
孙总,打扰一下,文本框的EditValueChanged事件,给另外文本框赋值,为什么事件本身的值不赋值呢? 界面不显示修改后的值 ?
解决方案:
绑定数据源的组件不能使用Text, EditValue直接赋值的, 这只是给控件属性赋值而没有给绑定的数据源赋值, 因此框架基类提供SetEditorBindingValue()方法赋值:
解决方案:
绑定数据源的组件不能使用Text, EditValue直接赋值的, 这只是给控件属性赋值而没有给绑定的数据源赋值, 因此框架基类提供SetEditorBindingValue()方法赋值:
C# Code:
private void txtB_STOR_BIG_EditValueChanged(object sender, EventArgs e)
{
if (this.IsAddOrEditMode == false) return;//新增修改状态
//在EditValueChanged事件内给其它组件赋值时, 也要给自己赋值
SetEditorBindingValue(txtB_STOR_BIG,txtB_STOR_BIG.EditValue, true);
//计件入库,包括:镶嵌类、钻石、仿真金、银杯、琉璃摆件、金石摆件、925银、纪念币
if (txtB_STOR_BIG.EditValue.ToString() == "dd62b958-c793-4093-9a92-f80e054b8c4e")
{
SetEditorBindingValue(txtB_STOC_MODE, "0", true);
}
else
{
SetEditorBindingValue(txtB_STOC_MODE, "1", true);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
private void txtB_STOR_BIG_EditValueChanged(object sender, EventArgs e)
{
if (this.IsAddOrEditMode == false) return;//新增修改状态
//在EditValueChanged事件内给其它组件赋值时, 也要给自己赋值
SetEditorBindingValue(txtB_STOR_BIG,txtB_STOR_BIG.EditValue, true);
//计件入库,包括:镶嵌类、钻石、仿真金、银杯、琉璃摆件、金石摆件、925银、纪念币
if (txtB_STOR_BIG.EditValue.ToString() == "dd62b958-c793-4093-9a92-f80e054b8c4e")
{
SetEditorBindingValue(txtB_STOC_MODE, "0", true);
}
else
{
SetEditorBindingValue(txtB_STOC_MODE, "1", true);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
SetEditorBindingValue 方法:
C# Code:
/// <summary>
/// 给绑定数据源的输入控件赋值
/// </summary>
/// <param name="bindingControl">绑定数据源的组件</param>
/// <param name="value">值</param>
/// <param name="setEditorValue">给控件赋值</param>
protected void SetEditorBindingValue(Control bindingControl, object value, bool setEditorValue)
{
object temp = null;//空值为null
if (value != DBNull.Value) temp = value;
//有绑定数据源, 给数据源赋值
if (bindingControl.DataBindings.Count > 0)
{
object dataSource = bindingControl.DataBindings[0].DataSource;
string field = bindingControl.DataBindings[0].BindingMemberInfo.BindingField;
if (dataSource is DataTable)
(dataSource as DataTable).Rows[0][field] = value;
else
DataConverter.SetValueOfObject(dataSource, field, value);
}
//给输入组件的赋值
if (setEditorValue)
{
if (bindingControl is BaseEdit)
(bindingControl as BaseEdit).EditValue = value;
else
DataConverter.SetValueOfObject(bindingControl, "EditValue", value);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 给绑定数据源的输入控件赋值
/// </summary>
/// <param name="bindingControl">绑定数据源的组件</param>
/// <param name="value">值</param>
/// <param name="setEditorValue">给控件赋值</param>
protected void SetEditorBindingValue(Control bindingControl, object value, bool setEditorValue)
{
object temp = null;//空值为null
if (value != DBNull.Value) temp = value;
//有绑定数据源, 给数据源赋值
if (bindingControl.DataBindings.Count > 0)
{
object dataSource = bindingControl.DataBindings[0].DataSource;
string field = bindingControl.DataBindings[0].BindingMemberInfo.BindingField;
if (dataSource is DataTable)
(dataSource as DataTable).Rows[0][field] = value;
else
DataConverter.SetValueOfObject(dataSource, field, value);
}
//给输入组件的赋值
if (setEditorValue)
{
if (bindingControl is BaseEdit)
(bindingControl as BaseEdit).EditValue = value;
else
DataConverter.SetValueOfObject(bindingControl, "EditValue", value);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898

参考文档:
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
LookupEdit.EditValueChanged事件内给其它文本框赋值无效或变回原来的值
LookupEdit 支持录入新值 - ProcessNewValue 事件
DevExpressV22:RepositoryItemComboBox的QueryPopUp事件无法动态加载数据项
C#.NET7 VS2022 使用反射动态设置按钮Click事件
.NET5 启动WebApi服务完成事件|C/S开发框架
WinFramework轻量级开发框架 | 功能按钮事件详解|C/S开发框架
ButtonStateChanged事件详解 - 当按钮状态改变时触发的事件
修改单元格关联更新其它列的值,Dev GridView组件OnCellValueChanged事件实现
解决方案:C# 当按钮不可见时(Visible=False),调用Button.PerformClick事件无效!
C#获取按钮的EventClick事件,EventHandlerList委托的调用列表
C# Dev GridView表格的CustomUnboundColumnData事件异步加载图片类AsynDownImage
DevExpress GridView表格CustomUnboundColumnData事件异步加载图片
DevExpress GridView 表格内嵌ButtonEdit按钮列图片按钮及Click事件
C/S系统快速开发框架数据操作窗体(单表、主从表窗体)按钮事件
DevExpress GridView单元格CellValueChanged事件详解
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
LookupEdit.EditValueChanged事件内给其它文本框赋值无效或变回原来的值
LookupEdit 支持录入新值 - ProcessNewValue 事件
DevExpressV22:RepositoryItemComboBox的QueryPopUp事件无法动态加载数据项
C#.NET7 VS2022 使用反射动态设置按钮Click事件
.NET5 启动WebApi服务完成事件|C/S开发框架
WinFramework轻量级开发框架 | 功能按钮事件详解|C/S开发框架
ButtonStateChanged事件详解 - 当按钮状态改变时触发的事件
修改单元格关联更新其它列的值,Dev GridView组件OnCellValueChanged事件实现
解决方案:C# 当按钮不可见时(Visible=False),调用Button.PerformClick事件无效!
C#获取按钮的EventClick事件,EventHandlerList委托的调用列表
C# Dev GridView表格的CustomUnboundColumnData事件异步加载图片类AsynDownImage
DevExpress GridView表格CustomUnboundColumnData事件异步加载图片
DevExpress GridView 表格内嵌ButtonEdit按钮列图片按钮及Click事件
C/S系统快速开发框架数据操作窗体(单表、主从表窗体)按钮事件
DevExpress GridView单元格CellValueChanged事件详解
其它资料:
什么是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内容管理系统 |
在线客服
