我正在将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不会造成任何影响
有人对此有解决方案吗?
预先感谢
答案 0 :(得分:0)
DevExpress组件(例如GridControl)支持the wide range of annotation attributes,它使您可以有效地将数据库中的整数值映射到特定的枚举成员,并为每个枚举成员提供有意义且可本地化的描述:
datediff('d', {startingdate}, {endingdate})