搜索自动过滤整数列上的字符串的方法

时间:2018-09-07 09:00:24

标签: c# winforms devexpress

我正在将devexpress gridview用于车辆管理程序,并获得一列,该列显示该行的数据是否标记为已删除。在数据库中,它们标记为“ 1”表示活动,标记为“ 11”表示删除,因此我创建了一个枚举类:

public enum enmSystemstatus
{
    Created = 1, 
    Deleted = 11
}

,并通过此事件在gridview中用单词而不是数字来标记它们:

private void gridView1_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
    {
        if (e.Column == colVehicle_Systemstatus && e.Value != null)
        {
            e.DisplayText = (int)e.Value == (int)enmSystemstatus.Created ? "Active" : "Deleted";
        }
    }

但是该程序也应该可以使用自动过滤器行,但是如果我在systemstatus列的搜索框中输入字母,则该程序将崩溃,因为无法转换这些值,该异常称为:

  

“ system.invalidcastexception指定的强制类型转换无效。”

这可能是因为数据库上的列是整数列,但是将其更改为varchar不会造成任何影响

有人对此有解决方案吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

DevExpress组件(例如GridControl)支持the wide range of annotation attributes,它使您可以有效地将数据库中的整数值映射到特定的枚举成员,并为每个枚举成员提供有意义且可本地化的描述:

 datediff('d', {startingdate}, {endingdate})

此自定义将应用于所有UI元素,包括过滤器没有任何事件处理和错误:
annotation attributes in action