DevExpress lookupedit 如何实现多列筛选

Shaun_lee 2015-02-03 10:29:04
DevExpress lookupedit 目前只能够使用displaynumber进行筛选,哪位大神可以实现多列查询。谢谢了
...全文
1652 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
s666666__ 2018-12-13
  • 打赏
  • 举报
回复
10楼的方法能现实[GridLookUpEdit]、但可惜[LookUpEdit]控件用不了
Aqiuuuuu 2017-09-06
  • 打赏
  • 举报
回复
报错的话。很多都是引用问题
Aqiuuuuu 2017-09-06
  • 打赏
  • 举报
回复
全部都可以复制。只要改改控件名。字段名和数据源就可以了 。
Aqiuuuuu 2017-09-06
  • 打赏
  • 举报
回复

        //GridLookUpEdit模糊查询
        private void FilterLookup(object sender, string[] arrFilterField)
        {
            //Text += " ! ";
            GridLookUpEdit edit = sender as GridLookUpEdit;
            GridView gridView = edit.Properties.View as GridView;
            FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
            //Text = edit.AutoSearchText;
            CriteriaOperator[] arrCriteriaOperator = new CriteriaOperator[arrFilterField.Length];
            for (int i = 0; i < arrFilterField.Length; i++)
            {
                arrCriteriaOperator[i] = new BinaryOperator(arrFilterField[i],"%"+edit.AutoSearchText + "%", BinaryOperatorType.Like);
            }
            string filterCondition = new GroupOperator(GroupOperatorType.Or, arrCriteriaOperator).ToString();
            fi.SetValue(gridView, filterCondition);
            MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
            mi.Invoke(gridView, null);
        }



//绑定事件
        void cmbZyzd_Properties_Popup(object sender, EventArgs e)
        {
            FilterLookup(sender, new string[] { "Name", "Code","Spell" });//中文,编码,拼音
        }
        void cmbZyzd_TextChanged(object sender, EventArgs e)
        {
            GridLookUpEdit edit = sender as GridLookUpEdit;
            edit.SelectionStart = edit.Text.Length;
        }
        void cmbZyzd_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
        {
            this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
            {
                FilterLookup(sender, new string[] { "Name", "Code", "Spell" });
            }));
        }




        //加载主要诊断
        void LoadZyzd()
        {

            DataTable dt = new CDM_HB_ICD10BLL().GetZYZDData();//数据源
            this.cmbZyzd.Properties.Popup -= new EventHandler(cmbZyzd_Properties_Popup);
            this.cmbZyzd.EditValueChanging -= new DevExpress.XtraEditors.Controls.ChangingEventHandler(cmbZyzd_EditValueChanging);
            this.cmbZyzd.TextChanged -= new EventHandler(cmbZyzd_TextChanged);
            this.cmbZyzd.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
            this.cmbZyzd.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
            this.cmbZyzd.Properties.AutoComplete = false;
            this.cmbZyzd.Properties.ImmediatePopup = true;
            this.cmbZyzd.Properties.PopupFilterMode = DevExpress.XtraEditors.PopupFilterMode.Contains;
            this.cmbZyzd.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
            this.cmbZyzd.Properties.DataSource =dt;
            this.cmbZyzd.Properties.ValueMember = "Code";
            this.cmbZyzd.Properties.DisplayMember = "Name";
            this.cmbZyzd.Properties.Popup += new EventHandler(cmbZyzd_Properties_Popup);
            this.cmbZyzd.EditValueChanging += new DevExpress.XtraEditors.Controls.ChangingEventHandler(cmbZyzd_EditValueChanging);
            this.cmbZyzd.TextChanged += new EventHandler(cmbZyzd_TextChanged);

        }
可以去慢慢参悟,不懂的可以问我
笑容融化坚冰 2016-12-30
  • 打赏
  • 举报
回复
DevExpress在第一家公司接触过一点点,感觉就是:好难用好麻烦的东西
zbdzjx 2016-12-30
  • 打赏
  • 举报
回复
最近也遇到类似这样的问题。用户要求即能按中文筛选,又能按拼音筛选。当时是想放两列,一列中文,一列拼音,但只能按一列去筛选。
youjing3594 2016-12-29
  • 打赏
  • 举报
回复
还在吗,问题解决了吗
yitics 2016-01-29
  • 打赏
  • 举报
回复
楼上的回答是 列表头筛选,非我所愿也!

yitics 2016-01-29
  • 打赏
  • 举报
回复
我们想要的是



但是筛选只能关联一烈,关联不了两列
mqcczhl 2016-01-06
  • 打赏
  • 举报
回复
引用 3 楼 D_dream 的回复:
在gridView 里面打开——Feature browser--找到Filtering——勾上auto filter row 就OK了
能否详细一点啊
飞阁 2015-06-05
  • 打赏
  • 举报
回复
在gridView 里面打开——Feature browser--找到Filtering——勾上auto filter row 就OK了
software_artisan 2015-02-03
  • 打赏
  • 举报
回复
请换gridlookupedit
exception92 2015-02-03
  • 打赏
  • 举报
回复
根据输入内容 拼接查询语句,查询你的数据源,再绑定到DataSource

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧