根据前端过滤条件通过后端构建DEV ASPxGridView的过滤行ComboBox控件的下拉列表

本文介绍如何在ASP.NET中使用ASPxGridView组件结合自定义的日期范围进行数据过滤的方法。通过将DEV过滤条件转换为MsSQL格式,并结合前端指定的开始和结束日期,实现了灵活的数据筛选功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在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;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值