DevExpress.XtraEditors.TextEdit绑定数据后,不输入内容,出现 “Invalid Value” 无效值错误

使用C#做桌面应用开发时经常会将数据绑定到控件,便于接受界面录入结果

然而,当字段类型为数值型类型(如:int,decimal, float等)时 ,如果没有给定内容,当控件失去焦点时,出现“Invalid Value” 无效值错误

如:

 private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID",typeof(int));
            dt.Columns.Add("Name",typeof(string));
            dt.Rows.Add(999, "zhangsan");

            textEdit1.DataBindings.Add("EditValue", dt, "ID",true);
            textEdit2.DataBindings.Add("EditValue", dt, "Name", true);

        }

界面

清空ID内容,并使其失去输入焦点时效果如下:

如果字段是string类型却不会有这个问题,遇到这个问题时,我以为是触发了事件 ,但是显然并没有手动绑定任何事件,于是我最开始使用最笨的方法强制将其改为string类型,然后注册一个编辑事件去控制输入数值内容。其实这个情况只是改动一个属性即可:

 textEdit1.CausesValidation = false;//该属性默认为True,所以不容易发现

原文地址:https://www.cnblogs.com/liangsheng/p/8934356.html

时间: 2024-08-05 13:54:40

DevExpress.XtraEditors.TextEdit绑定数据后,不输入内容,出现 “Invalid Value” 无效值错误的相关文章

IE浏览器 下面的文本框,获得焦点后无法输入内容

今天遇到一个问题,在IE浏览器下面,我点击 按钮  弹出一个弹出层,里面有一个 文本编辑器和一个文本框,但是第二次弹出后,文本框和文本编辑器无法输入内容,在控制台用js代码测试 $(document).on("focus","#title",function(){ alert("focus"); }) $(document).on("keydown","#title",function(){ alert(&

【原创】有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析

前些日子,公司新需求需要对silverlight的datagrid进行局部任意单元格数据可复制,查阅了半天网络资料愣是没找到相关资料,开始还以为是silverlight的bug根部无法实现, 最后还是实现了.MSDN上也未曾记录这个事件,具体代码如下: 前段xaml文件 需要个datagrid绑定复制事件: CopyingRowClipboardContent="dataGrid_CopyingRowClipboardContent" 后台代码实现如下: void dataGrid_C

C# DataGridView控件绑定数据后清空数据

在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将DataGridView的列也删掉. 2.用DataGridview.Rows.Clear();  提示"不能清除此列表"!!!!! 以上都不是想要的结果.想要满足保持原有的列,就是重新绑定之前的DataTable,然后清除DataTable中的数据,如下: DataTable  dt  =  (DataTable)dataGridView

DropDownList 绑定数据后 插入一条不属于表中的数据

ddlFGiftId.DataSource = dtGift; ddlFGiftId.DataTextField = "FGiftName"; ddlFGiftId.DataValueField = "FGiftName"; ddlFGiftId.DataBind(); ddlFGiftId.Items.Insert(0, new ListItem("==不使用赠送==", "0")); ddlFGiftId.Selected

DropDrownList绑定数据后设置默认值

Category.DataSource = b_ProductType.GetAllList().Tables[0]; Category.DataTextField = "TypeName"; Category.DataValueField = "ID"; Category.DataBind(); Category.Items.Insert(0, new ListItem("-请选择-", "")); //Category.I

GIRDVIEW 控件绑定数据后 后台c#控制隐藏某列

gv_EnterpriseInfo.DataSource = pageResult.Data; gv_EnterpriseInfo.DataBind(); 之后加判断条件: if (true) { gv_EnterpriseInfo.Columns[22].Visible = false; gv_EnterpriseInfo.Columns[23].Visible = false; gv_EnterpriseInfo.Columns[24].Visible = false; } 注:数字为第几列

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接     par:ID       sel:下拉列表选择器 function BuildSelectBox(url, par, sel) {  $(sel).empty();  $.getJSON(url, { id: par }, function (json, textStatus) {   for (var i = json.length - 1; i >= 0; i--) {  

关于form表单提交数据后不跳转页面+ajax接收返回值的处理

1.前台的form表单建立,注意action.enctype的内容, 2.通过添加一个隐藏的iframe标签使form的target指向iframe来达到不跳转页面的效果,同时需要在js里获取iframe里的内容(即后台利用GSON传回来的返回值). 代码部分: <form id="form1"  action="../PublishPostingsServlet"  enctype="multipart/form-data"  metho

【 D3.js 选择集与数据详解 — 3 】 绑定数据的顺序

data() 函数有两个参数,第一个是被绑定数据,第二个参数用于指定绑定的顺序.在数据需要更新的时候常常会用到. 默认的情况下,data()函数是按照索引号依次绑定数组各项的.第0个元素绑定数组的第0项,第1个元素绑定数组的第1项,依此类推.也可以不按照此顺序进行绑定,这就要用到data()的第二个参数.这个参数是一个函数,称为键函数(key function). 要注意,只有在选择集原来已经绑定有数据的情况下,才能使用键函数指定绑定的顺序.请看以下代码: <body> <!-- 三个空