一、在ASPxGridView1_AutoFilterCellEditorInitialize方法中加入下列代码:(注意我的前端有按天查询的逻辑,按您自己的需求灵活运用吧)
string gltj_str;
//用DEV过滤条件转换方法转换为MsSQL格式的过滤条件(重要)
CriteriaOperator op = CriteriaOperator.Parse(grd.FilterExpression);
gltj_str = CriteriaToWhereClauseHelper.GetMsSqlWhere(op);
///////////////////以上为关键代码//////////////////////////
if (!gltj_str.Contains("Null"))
{
if (gltj_str != "" && !gltj_str.Contains("where"))
{
//除去前端的过滤条件,我还加入了前端的开始日期和结束日期的查询条件
gltj_str = " where " + gltj_str + " and convert(varchar(20),业编时间,23)>='" + start_time.ToString("yyyy-MM-dd") + "' and convert(varchar(20),业编时间,23)<='" + end_time.ToString("yyyy-MM-dd") + "'";
}
else
{
gltj_str = " where convert(varchar(20),业编时间,23)>='" + start_time.ToString("yyyy-MM-dd") + "' and convert(varchar(20),业编时间,23)<='" + end_time.ToString("yyyy-MM-dd") + "'";
}
}
e.Column.Settings.FilterMode = ColumnFilterMode.DisplayText;
ASPxComboBox combo = e.Editor as ASPxComboBox;
combo.ValueType = typeof(string);
DataTable temp_dt = SqlHelper.ExecuteDataTable("select distinct " + e.Column.FieldName + " from 考勤表 "+gltj_str, new SqlParameter[] { });
foreach (DataRow dr in temp_dt.Rows)
{
combo.Items.Add(dr[e.Column.FieldName].ToString().Trim());
}
二、定义全局变量
public static DateTime start_time;
public static DateTime end_time;
三、在Reload方法中记录传入的时间
start_time = sj1;
end_time = sj2;