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

 

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

 

转载于:https://www.cnblogs.com/stroll/p/5770561.html

DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法相关推荐

  1. DevExpress控件使用系列--ASPxTreeList

    DevExpress控件使用系列--ASPxTreeList 控件功能 结合列表控件及树控件的优点,在列表控件中实现类型树的多层级操作  官方说明 http://documentation.devex ...

  2. 【原创】DevExpress控件GridControl中的布局详解

    在进行DevExpress控件GridControl的使用时,因控件的灵活性,所以用户会经常进行拖动控件的列,以达到自己满意的样式, 但下次再打开时系统就会重新还原到原有的布局风格,为了能够保持用户之 ...

  3. DevExpress控件GridControl中的布局详解 【转】

    DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28|  分类: devexpress |  标签:devexpress  |举报|字号 订阅 h ...

  4. DevExpress控件之GridControl控件

    DevExpress控件之GridControl控件 http://blog.sina.com.cn/s/blog_6769068d0100iucx.html 1.  设置数据源: string sq ...

  5. DevExpress控件使用经验总结

    DevExpress控件使用经验总结 DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发 ...

  6. 线程访问 DevExpress控件异常时 解决方法

    线程访问 DevExpress控件异常时 解决方法 Control.CheckForIllegalCrossThreadCalls = false; DevExpress.Data.CurrencyD ...

  7. 在 GridView 控件中添加一列复选框51

    简介 在前面的教程中 , 我们学习了如何为 GridView 控件添加一列 单选 按钮来选择一个特定的记录.当用户被限制最多只能从网格中选中一项时,一列单选按钮是一个非常恰当的用户界面.然而,有时我们 ...

  8. GridView控件只让某列可以编辑,并在后台获取值的方法

    GridView控件只让某列可以编辑,并在后台获取值的方法 需求是这样的: 使用GridView绑定数据源显示数据,然后其中的价格和报价总数要窗体一加载就是编辑模式,并且修改里面的值点击保存更改可以成 ...

  9. Devexpress控件中gridcontrol Drag a column header here to group by that column 更换

    参照网站:http://documentation.devexpress.com/#WPF/DevExpressXpfGridDataViewBase_RuntimeLocalizationStrin ...

  10. devexpress控件的2种汉化方法,官方想得很周到

    devexpress控件库默认安装后,使用的本地资源为英文.但其实它都有本地化资源包,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等等,所有这些资源字符串可以很容易地被翻译成各种语言.对于要求 ...

最新文章

  1. CentOS6.8 编译安装LNMP
  2. 嵌入式c语言汇编混合编程,嵌入式C语言和汇编语言的混合编程
  3. 2020-11-28(不定参数的函数)
  4. VTK:几何对象之OpenVROrientedCylinder
  5. python学习高级篇(part2)--类方法,静态方法,访问控制
  6. LAMP搭建之三:php编译安装
  7. attribute 扩展
  8. 状态栏背景颜色(转载)
  9. Invalid options in vue.config.js: “baseUrl“ is not allowed
  10. 95-10-150-启动-FetchManager
  11. 接口测试工具-Apipost变量的定义和使用
  12. udp linux 获取本机ip
  13. 查阅国外文献的网站有哪些?
  14. ssh 登录linux xsell 登录Linux 提示用户密钥登录怎么解决
  15. Codesys中国官网下载中心
  16. ios个人小游戏开发者如何做到年收益过百万?
  17. 简述created和mounted的区别
  18. Android App Widget中如何调用RemoteView中的函数
  19. VB学习第四周续--四位整数逆序
  20. 如何使用(免费软件)Microsoft ICE轻松扫描大图片

热门文章

  1. 网上支付(支付宝/银联)
  2. 算法手记 之 数据结构(并查集详解)(POJ1703)
  3. hashMap的具体实现
  4. 5、WPF实现简单计算器-非常适合初学者练习
  5. 【ARM】2410裸机系列-中断处理
  6. 创建表时参数PCTFREE和PCTUSED是什么意思?
  7. BZOJ4401: 块的计数 思维题
  8. ios信息交互 协议的使用
  9. 通向架构师的道路(第八天)之weblogic与apache的整合与调优 转
  10. can't init script for