给绑定数据源的文本输入框TextEdit.Text或EditValue属性赋值,失去焦点文本自动清空了
给绑定数据源的文本输入框TextEdit.Text或EditValue属性赋值,失去焦点文本自动清空了
当文本输入框组件绑定数据源时,直接給Text, EditValue属性赋值是无效的,因为没有写入数据到数据源。 必须使用DataBinding.WriteValue方法写入数据。 解决方案1:赋值后,使用WriteValue方法。 C# Code: //模拟给TextEdit赋值 private void button1_Click(object sender, EventArgs e) { //textEdit1.Text = "www.CSFramework.com"; textEdit1.EditValue = "www.CSFramework.com"; //使用此方法正常! //WriteValue:读取控件属性的当前值并将其写入数据源 textEdit1.DataBindings[0].WriteValue(); } //来源:C/S框架网 | www.csframework.com | QQ:23404761 解决方案2:封装1个自定义方法赋值,比如SetEditorBindingValue。 C# Code: //模拟给TextEdit赋值 private void button2_Click(object sender, EventArgs e) { //textEdit1.EditValue = "www.CSFramework.com"; //textEdit1.Text = "www.CSFramework.com"; SetEditorBindingValue(textEdit1, "www.CSFramework.com"); } /// <summary> /// 给绑定数据源的组件赋值 /// </summary> /// <param name="bindingControl"></param> /// <param name="value"></param> protected void SetEditorBindingValue(BaseEdit bindingControl, object value) { //bindingControl.Text = value; bindingControl.EditValue = value; if (bindingControl.DataBindings.Count > 0) { bindingControl.DataBindings[0].WriteValue(); } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 C/S系统快速开发框架绑定数据源的自定义方法: C# Code: /// <summary> /// 绑定输入控件的数据源 /// </summary> /// <param name="edit">控件框</param> /// <param name="dataSource">数据源</param> /// <param name="bindField">取值字段</param> public void BindingTextEditBase(BaseEdit edit, object dataSource, string bindField) { try { edit.DataBindings.Clear(); Binding b = new Binding("EditValue", dataSource, bindField); edit.DataBindings.Add(b); b.ReadValue(); } catch (Exception ex) { // } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 C# Code: public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 绑定输入控件的数据源 /// </summary> /// <param name="edit">控件框</param> /// <param name="dataSource">数据源</param> /// <param name="bindField">取值字段</param> public void BindingTextEditBase(BaseEdit edit, object dataSource, string bindField) { try { edit.DataBindings.Clear(); Binding b = new Binding("EditValue", dataSource, bindField); edit.DataBindings.Add(b); b.ReadValue(); } catch (Exception ex) { // } } private void Form1_Load(object sender, EventArgs e) { MyCustomer customer = new MyCustomer { CustomerCode = "CSFramework.com", CustomerName = "C/S框架网" }; //绑定数据源 BindingTextEditBase(textEdit1, customer, "CustomerCode"); BindingTextEditBase(textEdit2, customer, "CustomerName"); } public class MyCustomer { public string CustomerName { get; set; } public string CustomerCode { get; set; } } //模拟给TextEdit赋值 private void button1_Click(object sender, EventArgs e) { textEdit1.EditValue = "www.CSFramework.com"; //使用此方法正常! //WriteValue:读取控件属性的当前值并将其写入数据源 textEdit1.DataBindings[0].WriteValue(); } //模拟给TextEdit赋值 private void button2_Click(object sender, EventArgs e) { //textEdit1.EditValue = "www.CSFramework.com"; //textEdit1.Text = "www.CSFramework.com"; SetEditorBindingValue(textEdit1, "www.CSFramework.com"); } /// <summary> /// 给绑定数据源的组件赋值 /// </summary> /// <param name="bindingControl"></param> /// <param name="value"></param> protected void SetEditorBindingValue(BaseEdit bindingControl, object value) { //bindingControl.Text = value; bindingControl.EditValue = value; if (bindingControl.DataBindings.Count > 0) { bindingControl.DataBindings[0].WriteValue(); } } private void textEdit1_EditValueChanged(object sender, EventArgs e) { // } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信:
参考文档:
我想请教一下,C/S连接数据源,能通过WebService方式吗? C#调用Delphi编译的DLL函数库返回大文本数据 框架能否支持同时访问多个数据源? [原创]Asp.Net的GridView绑定空数据显示标题 C#SQL客户端处理大文本数据通用接口 从输入框跳转到明细表格并新增记录 C#使用DataBindings属性绑定不同类型的数据源 DEV组件LookupEdit,ComboBoxEdit绑定数据源 DEV CheckedListBoxControl组件绑定数据源 C# 给绑定数据源的文本框.Text属性赋值,但没有保存数据 使用观察者模式实时更新程序打开多个界面绑定组件的数据源 LookupEdit关联更新其它文本输入框的值(自动带出参考数据并赋值) 使用DataBinderTools工具类绑定下拉LookupEdit组件数据源 手工绑定某个下拉数据窗口(LookUpEdit)的数据源 C# DevExpress TreeListLookUpEdit 绑定数据源下拉窗体
其它资料:
什么是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内容管理系统 | |