解决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;
}
包括另一个朋友给的另一段更复杂一点的代码,两段代码我都试过了,是可以清空了。但是只要一点击该字段,该输入框就是空的了,虽然不输入任何值,直接移开焦点,原数据还在。要清空的话,得先随便输入一个值,然后再把输入的这个值清掉。这样的操作实在有点坑爹。不知道为何会是这样的效果,是不是因为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;
}

需要的朋友可以参考下,具体原理我没有分析。

posted @ 2013-07-05 22:53  huangjt007  阅读(223)  评论(0编辑  收藏  举报