有时我们需要用代码去设置Grid的过滤条件,如果过滤条件中有日期的话要小心了,因为你很可能已经写错了,并且还不太容易发现错误。
如果过滤条件中有日期比较时这样的写法是错误的:
gridView1.ActiveFilterString = "BillDate<'"+dr["StartDate"]+"'";
因为当用户的电脑日期格式为短日期如:2017/8/24,这时过滤会有问题。
如:BillDate='2017/8/8'的记录将不满足 BillDate<'2017/8/24'的过滤条件,原因是什么自己考虑,这里只给出解决方案。
gridView1.ActiveFilterString = "BillDate<#"+dr["StartDate"]+"#";
没错,不要把日期内容放到单引号中,而是放到 # 中就好了。
怕大家不明白,做个动图演示(点击图片查看演示)。
DataTable.Select() 表达式支持的语法格式:https://www.csharp-examples.net/dataview-rowfilter/