本方案不需要修改控件源码,是完美解决支持多列模糊匹配快速输入的最佳方案!!

 

1、把列的Properties属性设置为ExtLookupComboBox。

Properties.IncrementalFiltering := False;
Properties.CaseSensitiveSearch := False; 
Properties.DropDownListStyle := lsEditList;

当然,接着要完成设置Properties.View,Properties.KeyFieldNames和Properties.ListFieldItem。

  // 本案例的列是:cxGridDBTableView1VENDOR_ID: TcxGridDBColumn;绑定服务商ID自动。

2、Properties.OnChange事件代码:

procedure TFormcxLookupCombox.cxGridDBTableView1VENDOR_IDPropertiesChange(Sender: TObject);

var
  iCol: Integer;
  vInputText: String;
begin
  // 注:cxGridDBTableView1VENDOR_ID: TcxGridDBColumn;
  (Sender as TcxExtLookupComboBox).Properties.IncrementalSearch := False; //必需
  (Sender as TcxExtLookupComboBox).Properties.CaseInsensitive := True;    //必需
  //(Sender as TcxExtLookupComboBox).Properties.IncrementalFiltering := False;//设计期在Properties中设置好.
  //(Sender as TcxExtLookupComboBox).Properties.CaseSensitiveSearch := False; //设计期在Properties中设置好.
  //(Sender as TcxExtLookupComboBox).Properties.DropDownListStyle := lsEditList;//设计期在Properties中设置好
  vInputText := (Sender as TcxExtLookupComboBox).EditText;
  // with (cxGrid1DBTableView1VENDOR_ID.Properties as TcxExtLookupComboBoxProperties) do
  with (Sender as TcxExtLookupComboBox).Properties do    // 改为通用写法.
  begin
    View.DataController.Filter.Options := [fcoCaseInsensitive];
    View.DataController.Filter.Clear;
    View.DataController.Filter.Root.Clear;
    // view中所有可视列都用于模糊检索.
    for iCol := 0 to View.VisibleItemCount - 1 do
    begin
      if iCol > 0 then View.DataController.Filter.Root.BoolOperatorKind := fboOR;
      View.DataController.Filter.Root.AddItem(View.VisibleItems[iCol], foLike,
       '%' + vInputText + '%', '%' + vInputText + '%');
    end;
    View.DataController.Filter.Active := True;
  end;
end;

3、Properties.OnCloseUp事件代码:
procedure TFormcxLookupCombox.cxGridDBTableView1VENDOR_IDPropertiesCloseUp(Sender: TObject);
begin
  (Sender as TcxExtLookupComboBox).Properties.View.DataController.Filter.Clear;

end;

如果不是在cxGrid的列中编辑数据,则可以用TcxDBExtLookupComboBox控件实现,方法与上述雷同!

转自:http://blog.csdn.net/qq56430204/article/details/52199007

 

DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法的更多相关文章

  1. DevExpress控件cxGrid实现多列模糊匹配输入的完美解决方案

    本方案不需要修改控件源码,是完美解决cxgrid或TcxDBExtLookupComboBox支持多列模糊匹配快速输入的最佳方案!! 转自https://blog.csdn.net/qq5643020 ...

  2. Android控件——AutoCompleteTextView与MultiAutoCompleteTextView(实现自动匹配输入的内容)

    ------------------------------------AutoCompleteTextView----------------------

  3. element-ui的table表格控件表头与内容列不对齐问题

    原文链接:点我 element-ui的table表格控件表头与内容列不对齐问题 解决方法:将以下样式代码添加到index.html.或app.vue中(必须是入口文件,起全局作用!)body .el- ...

  4. DevExpress控件的GridControl控件小结

    DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条 ...

  5. 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择

    在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...

  6. DevExpress控件使用经验总结- GridView列表行号显示操作

    DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一 ...

  7. DevExpress控件开发常用要点(项目总结版)

    使用DevExpress控件来做项目开发已经有很长一段时间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很多问题需要解决的,随着一个个问题的解决,也留下很多对DevExpress控件的使用经验及教训 ...

  8. DevExpress控件-- Gridcontrol合并表头

    写在前面的话: 在园子里逛了有一段时间了,一直想写点东西,但苦于自己的水平有限,生怕写出来的东西浪费了读者的时间.楼主有幸参加了公司DevExpress控件的培训,独乐乐不如众乐乐,特附上Demo以飨 ...

  9. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

随机推荐

  1. Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label)

    ylbtech-Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label) 1.返回顶部 1. Java 实例 - 标签(Label)  Java 实例 Java 中 ...

  2. [UE4]Datasmith

    Datasmith 是帮助您将内容导入到虚幻引擎4中的一组工具和插件. 作为虚幻工作室产品的部分,Datasmith设计用于解决非游戏行业人士所面临的独特挑战,例如建筑.工程.建造.制造.实时培训等行 ...

  3. dubbo协议下的单一长连接与多线程并发如何协同工作

    上班的路上突然就冒出了这么个问题:既然在dubbo中描述消费者和提供者之间采用的是单一长连接,那么如果消费者端是高并发多线程模型的web应用,单一长连接如何解决多线程并发请求问题呢? 其实如果不太了解 ...

  4. Android通过包名启动其他应用,若该应用已启动,则直接将应用切到前台

    CommUtil.startActivityForPackage(mContext, "com.autonavi.minimap");//打开高德 CommUtil.java /* ...

  5. 文件上传(asp.net webform中)

    1.配置允许上传文件大小 <configuration> <appSettings> <!--配置上传文件最大字节数:单位KB--> <add key=&qu ...

  6. 逻辑运算符&逻辑短路

    (1)and 逻辑与 全真则真,一假则假 print(True and True) #True print(False and True) #False print(False and False) ...

  7. struts2的result的类型配置简介

    一.在strut2的action处理完成后,就应该向用户返回结果信息result 根据以下代码作为实例分析: <package name="Hello" extends=&q ...

  8. react mobx webpack 使用案例

    1.package.json: { "name": "wtest", "version": "1.0.0", " ...

  9. url后面带斜杠与不带斜杠的区别

    比如: https://www.baidu.com/test/ https://www.baidu.com/test 当Web服务器接收到对某个末尾不含斜杠的url请求时,例如https://www. ...

  10. 使用vim时生成的.swp文件

    1. 在使用vim时,退出编辑后,发现生成了swp文件,如下: 发现用vim打开一个文件时,都会产生一个.swp的隐藏文件(即文件名.开头的),这个文件是一个临时交换文件,用来备份缓冲区中的内容,用于 ...