WinForm/C# DevExpress GridControl 设置过滤字符串 ActiveFilterString 时注意对日期的处理

xinggang · 2017年08月24日 · 988 次阅读

有时我们需要用代码去设置Grid的过滤条件,如果过滤条件中有日期的话要小心了,因为你很可能已经写错了,并且还不太容易发现错误。
如果过滤条件中有日期比较时这样的写法是错误的:
gridView1.ActiveFilterString = "BillDate<'"+dr["StartDate"]+"'";
因为当用户的电脑日期格式为短日期如:2017/8/24,这时过滤会有问题。
如:BillDate='2017/8/8'的记录将不满足 BillDate<'2017/8/24'的过滤条件,原因是什么自己考虑,这里只给出解决方案。

用代码设置带日期的过滤字符串的正确姿势:

gridView1.ActiveFilterString = "BillDate<#"+dr["StartDate"]+"#";
没错,不要把日期内容放到单引号中,而是放到 # 中就好了。
怕大家不明白,做个动图演示(点击图片查看演示)。
20170824153508

扩展阅读:

DataTable.Select() 表达式支持的语法格式:https://www.csharp-examples.net/dataview-rowfilter/

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册