解决DevExpress Grid"输入字符串的格式不正确“问题的正确办法
使用DEV控件的grid时,动态的创建列,如果将已经有数据的某一列清空(包括输入后又清空),会提示”输入字符串的格式不正确“,在网上找到了一些关于该问题的处理方法。包括半官方的”慧都控件网“,给出的方法如下:
注:前提是将该字段的ColumnEdit设置为下述的RepositoryItemTextEdit
处理RepositoryItemTextEdit的事件ParseEditValue即可,代码如下:
private void RepositoryItemTextEdit_ParseEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
{
TextEdit edit = (TextEdit)sender;
if (edit.Text == string.Empty)
e.Value = null;
}
{
TextEdit edit = (TextEdit)sender;
if (edit.Text == string.Empty)
e.Value = null;
}
包括另一个朋友给的另一段更复杂一点的代码,两段代码我都试过了,是可以清空了。但是只要一点击该字段,该输入框就是空的了,虽然不输入任何值,直接移开焦点,原数据还在。要清空的话,得先随便输入一个值,然后再把输入的这个值清掉。这样的操作实在有点坑爹。不知道为何会是这样的效果,是不是因为DEV版本不致的原因。我用的是9.1.3。问题总得解决啊,只好自己摸索,发现用如下的代码在我这里可以完美解决:
private void repositoryItemTextEdit1_ParseEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
{
object obj = e.Value;
if (obj==null||obj.ToString()==string.Empty)
e.Value = null;
}
需要的朋友可以参考下,具体原理我没有分析。