今天用Devexpress的SearchLookUpEdit发现个问题
检查类别列为int类型,检查类别嵌入了一个SearchLookUpEdit后,效果是这样
一旦点击清除按钮就会报错,目前猜想可能是公司给的那套组件影响的,明天测试一下。
报的错误内容是类型不符合,请将null用DBNULL代替……,试了一下午之后,
/// <summary> /// 解决 int 类型的列点击清空按钮后报错的问题,将空值转换为 DBNull.Value /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void riCbCheckType_ParseEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e) { if (e.Value == null) { e.Value = DBNull.Value; } }
用这个事件成功解决了,我认为原理应该就是提交时验证值得时候进行转换操作,但是用Validating事件也不行。在此记录这个问题。