EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值

  EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值

EditValueChanged事件,给另外文本框赋值,为什么事件本身的值赋不值



问题描述:


孙总,打扰一下,文本框的EditValueChanged事件,给另外文本框赋值,为什么事件本身的值不赋值呢? 界面不显示修改后的值 ?



解决方案:


绑定数据源的组件不能使用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




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





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为CSFramework文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

EditValueChanged事件另外文本框赋值为什么事件本身
LookupEdit.EditValueChanged事件其它文本框赋值无效或变回原来
C# 绑定数据源文本框.Text属性赋值,但没有保存数据
C#.NETDataTable日期类型赋值报错:所需类型是 MySqlDateTime,类型与列类型匹配
文本框输入,离开焦点保存还是原来
关于LookupEdit组件选择一条纪录触发EditValueChanged事件
LookupEdit关联更新其它文本输入框(自动带出参考数据并赋值
SetPropertyValue 对象属性赋值
C# DataGridView 自动新增记录当前单元格赋值
通过.NET反射动态调用SetValue方法属性PropertyInfo赋值
框架为什么采用NHibernate做ORM?
绑定数据源文本输入框TextEdit.Text或EditValue属性赋值,失去焦点文本自动清空了
通过反射技术创建窗体实例然后控件赋值(C#)
ASP.NET IIS网站为什么Global.asaxApplication_Start方法设断点跟踪运行?
新增记录时自动生成记录序号号码(或单据号码)并填充文本框
开发框架分模块分三层后工程项目很多,为什么简化?
购买您框架付款后会传代码我?
继承frmBaseChild基类窗体,为什么显示“关闭”按钮?
修改单元格关联更新其它列,Dev GridView组件OnCellValueChanged事件实现
C#深入剖析事件(C# Event详解)