DevExpress 选择框如何进行模糊查询

dev中有很多的选择框控件,但是没有发现能够实时模糊查询的选择框,lookupedit是在数据源不变情况下实现自动匹配,但很多时候数据量太大以至于我们没法先绑定数据源。

这时我们需要一个能够实现实时匹配的SearchTextBox。这里我们用到了popupcontainerEdit。

先从工具栏中拖一个popupcontainerEdit和一个popucontainerControl。popupcontainerEdit像是一个lookupedit的输入选择框。而popucontainerControl则像是一个lookupedit的下拉框。popucontainerControl是一个类似panel的容器。我们可以放置各种数据集合控件,这里我们在里面放置了一个treeList.

利用popupcontainerEdit.Properties下PopupControl属性绑定popucontainerControl,将popucontainerControl和popupcontainerEdit二者联系起来

再注册popupcontainerEdit的editValueChanged事件或者TextChanged事件。这里我们用的是editValueChanged事件。当popupcontainerEdit输入文字的时候会触发这个事件,实时绑定数据。这里因为是demo所以写死用的假数据。实际情况是到数据库中去查询。注意这里可能会有延时,为了防止界面卡住你可以把查询的方法异步,查询到数据之后再Invoke回调主线程。最后在treeList的mousedoubleClick中找到选择的项。

  private void popupTest_EditValueChanged(object sender, EventArgs e)
        {
            if (popupTest.EditValue == null)
            {
                tlTest.DataSource = "";
                return;
            }
            switch (popupTest.EditValue.ToString())
            {
                case "张":
                    tlTest.DataSource = new List<NameValue>()
                    {
                           new NameValue() { Name="张三",Value="zhang"},
                           new NameValue() { Name="张天爱",Value="zhang2"},
                           new NameValue() { Name="张伯伦",Value="zhang3"},
                    };
                    break;
                case "李":
                    tlTest.DataSource = new List<NameValue>()
                    {
                             new NameValue() { Name = "李四", Value = "li" },
                             new NameValue() { Name = "李世民", Value = "li2" }
                     };
                    break;
                case "王":
                    tlTest.DataSource = new List<NameValue>()
                      {
                              new NameValue() { Name="王五",Value="wang"},
                              new NameValue() { Name="王王",Value="wang2"}
                      };
                    break;
                default:
                    tlTest.DataSource = "";
                    break;
            }
            popupTest.ShowPopup();
            popupTest.Focus();
        }

最后,我们再看下运行的效果:

时间: 2024-10-26 20:20:51

DevExpress 选择框如何进行模糊查询的相关文章

报表工具怎么做模糊查询

在数据查询系统中,我们常常会遇到精准查询和模糊查询.我们知道,对于关系数据库,使用精准查询可以直接在 sql 里面使用"where 字段 = 参数值"来过滤对应的数据,而要实现模糊查询,我们使用的就是 like 的形式.那么,在报表里面该如何使用 like 方式实现模糊查询来过滤数据呢? 下面,我们结合润乾报表自带的 hsql 数据库中的客户表,来做一个模糊查询的示例. 例如:在下拉框中通过模糊查询显示所有姓名里面带有"王"字的联系人,当用户选择后进行精准查询.并且

oracle SQL语句练习MERGE、模糊查询、排序、

Oracle支持的SQL指令可分为数据操作语言语句.数据定义语言语句.事务控制语句.会话控制语句等几种类型:1.数据操作语言语句数据操作语言语句(Data manipulation language,DML)用于进行数据的检索和更新操作.数据检索是数据库应用中使用频率最高的操作类型,因此数据检索的效率对数据库的整体性能影响显著.数据更新包括数据的插入.修改和删除等操作,数据更新操作具有一定的风险性,在其执行过程中DBMS必须保证数据的一致性,以确保数据有效.SELECT.INSERT.DELET

easyui combobox模糊查询

用easyui框架开发的攻城狮恐怕都遇到过这样一个问题,就是在新增页面combobox下拉框需要支持模糊查询,但是输入不是combobox中Data里面的值的时候,点击保存,依然是可以新增进去的,这样是肯定不行的,那这样是怎么解决的呢,本人就曾经用过一个很笨的办法,就是用combobox中面板隐藏的时候,获取下拉框Data数据,然后遍历判断,如果数据的不是Data中的数据,清空下拉框的值 1 onHidePanel:function(){ 2 var flag = true; 3 var val

LinqToEntity模糊查询的方法选择

LinqToEntity针对oracle模糊查询 方法:Contains() 转换出来的sql是  like  关键字 方法:IndexOf()  转换出来的sql是  instr()  函数 like 和 instr() 方法对于模糊查询的效率 有时有很大的差异,使用时可根据需要选择

Mybatis mysql 一个搜索框多个字段模糊查询 OR

根据搜索框给定的关键词,模糊搜索用户名和账号都匹配的用户集合 <select id="list" parameterType="com.user.UserInfo" resultType="com.user.UserInfo"> SELECT * FROM user WHERE 1 = 1 <if test="searchParam != null and searchParam != ''"> AND

jquery 模糊查询下拉框

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> xSelectList Demo </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT

js实现下拉框模糊查询

keyup方法触发模糊查询 list : Array<any> //下拉列表所有内容 filtList:Array<any> //过滤后的内容 inputContent : string //输入的内容 方法一,filter()遍历: filtList = list.filter(data => { return data && data.toString().indexOf(inputContent)!==-1 }) 方法二,for循环: for(const

jquery.select2 模糊查询

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/> <link rel="stylesheet" href="css/bootstrap

jquery.chosen.js下拉选择框美化插件项目实例

由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生变化.为了界面的美观,不得已查资料寻找另外的插件. 使用jquery.chosen.js下拉选择框美化插件同样也能达到类似效果 完成效果如下 实现步骤如下 1.导入相关文件 <link rel="stylesheet" href="${ctxStatic}/css/chos