这几天老大叫我修改一下项目中LookUpEdit控件的下拉选择功能,实现模糊检索数据,经过一番研究,发现LookUpEdit控件只能实现部分模糊检索数据功能,也就是它的检索索引是从第一位开始,也就是模糊检索数据的时候,用户必须从头开始检索,这样给用户不友好,如果只知道其中的某些关键字则实现不了。如下图:

查询了资料后,发现LookUpEdit不支持自由输入,所以只好用它的兄弟控件ComBoxEdit控件。ComBoxEdit控件能够不受数据源的影响而自由输入值,现在就来说下我的处理思路: 根据用户输入的值,对ComBoxEdit的数据源做过滤,然后重新绑定到控件,废话不多说了,直接上代码吧。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors.Controls;namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}DataTable dt = new DataTable();private void Form1_Load(object sender, EventArgs e){try{BindData();}catch (Exception){//TODO}}/// <summary>/// 给全局dt复制,这里可以是sql语句,得到table后循环table绑定数据到控件/// </summary>private void BindData(){dt.Columns.Add(new DataColumn("value", typeof(string)));for (int i = 0; i < 100; i++){DataRow dr = dt.NewRow();               dr["value"] = i.ToString();dt.Rows.Add(dr);this.comboBoxEdit1.Properties.Items.Add(i);//绑定数据到控件                }this.lookUpEdit1.Properties.DataSource = dt;this.lookUpEdit1.Properties.ValueMember = "value";this.lookUpEdit1.Properties.DisplayMember = "value";this.lookUpEdit1.Properties.ShowHeader = false;}private void comboBoxEdit1_KeyUp(object sender, KeyEventArgs e){try{string str = comboBoxEdit1.Text.ToString();//if (str == "")//    return;comboBoxEdit1.Properties.Items.Clear();//无论有没有过滤,都要清空原来的值string s = "value like '%" + str + "%'";DataView v = dt.DefaultView;v.RowFilter = s;DataTable dtt = v.ToTable();if (dtt.Rows.Count > 0)//如果输入的值过滤后有满足的值,则加载满足条件的值,否则加载全部{for (int i = 0; i < dtt.Rows.Count; i++){this.comboBoxEdit1.Properties.Items.Add(dtt.Rows[i]["value"].ToString());}}else{for (int i = 0; i < dt.Rows.Count; i++){comboBoxEdit1.Properties.Items.Add(dt.Rows[i]["value"].ToString());}}}catch (Exception){//TODO}}}
}

  运行效果如下图:

小弟做的比较粗糙,希望大虾们多多指点。

转载于:https://www.cnblogs.com/dogxuefeng/archive/2012/11/15/2771234.html

DEV ComBoxEdit实现模糊检索数据相关推荐

  1. [Excel]vlookup的内在逻辑以及模糊检索

    作为一个excel的用户,vlookup可能是使用频度最高的一个函数 但是有关这个函数当中的数学意义不知道大家具体了解多少 今天就在这里讲讲我个人的vlookup的一些用法 比一般的使用方法稍微高阶一 ...

  2. PostgreSQL 一复合查询SQL优化例子 - (多个exists , 范围检索 , IN检索 , 模糊检索 组合)...

    标签 PostgreSQL , 多个exists , 范围检索 , IN检索 , 模糊检索 , 组合 , gin , recheck , filter , subplan 背景 当一个SQL包含复杂的 ...

  3. select 检索数据

    Select检索数据 数据查询语言DQL 简单查询 Select语句语法 Select [distinct | all ] 查询的字段列表 from 查询的表列表 [where 条件语句] [grou ...

  4. 文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择

    转载自:文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择 一.需求 需要创建一个常见问题库,填写存在问题时可以下拉选择,可以模糊搜索,也可以手写.如果选择了问题库中的内容,自动填充内容到存在问 ...

  5. 检索数据不能检索了_数据检索和清理:跟踪迁移模式

    检索数据不能检索了 Advancing your skills is an important part of being a data scientist. When starting out, y ...

  6. 《SQL Cookbook》 - 第一章 检索数据

    朋友推荐了一本书<SQL Cookbook>,翻译过来就是<SQL经典实例>,讲的都是SQL编写层面的案例,例如获得随机数.NULL值判断.求中位数.日期计算等,都是日常工作中 ...

  7. 向线程传递数据与线程用回调方法检索数据

    用回调方法检索数据 /**//*用回调方法检索数据 下面的示例演示了一个从线程中检索数据的回调方法.包含数据和线程方法的类的构造函数也接受代表回调方法的委托: 在线程方法结束前,它调用该回调委托. * ...

  8. java map输出中括号,从地图检索数据时获取双方括号

    我将数据存储在Map中,以字符串作为键,以JSONArray作为值的形式存储在Map中,但是在检索数据时,我得到了值的双方括号 这是我的程序 import java.util.Iterator; im ...

  9. vlan后 出现 outlook 正在试图从服务器检索数据

    vlan后 出现 outlook 正在试图从服务器检索数据   cisco vlan outlook 正图试从Microsoft Exchange Server     检索数据. cisco 375 ...

最新文章

  1. 100W无线电耦合功率测试实验
  2. linux下的du命令
  3. 【机器学习PAI实践五】机器学习眼中的《人民的名义》
  4. OSError: [WinError 126] 找不到指定的模块————Shapely
  5. ML之回归预测:以某个数据集为例从0到1深入理解科学预测之回归(实数值年龄预测)问题的思路框架
  6. 蓝桥杯练习系统习题解答-入门训练
  7. Silverlight 2 Customized Control 开发
  8. Hive----------Cannot find hadoop installation: $HADOOP_HOME m...
  9. think queue 消息队列初体验
  10. `find -name`模式匹配多个模式
  11. ASP获取真实IP地址
  12. redhat 7.2更新yum源时踩的坑
  13. http://baiy.cn/doc/cpp/index.htm#代码风格与版式_函数
  14. android banner 不轮播,使用Android Banner来设置一个轮播图
  15. 模拟电路9(微变等效电路法对共射基本放大电路进行分析)
  16. 考研计算机考点精讲课程笔记新东方,新东方词汇笔记非常完整版
  17. JS-打开新窗口(window.open)/关闭窗口(window.close)
  18. tomcat启动(一)
  19. JQuery 多选下拉列表左右移动
  20. 简介 FL Studio 中 Fruity Soft Clipper 效果器

热门文章

  1. http协议、cookie与session介绍
  2. 在windows系统安装nginx
  3. 从Python迁移到Go的原因和好处
  4. 十分钟python入门基础
  5. Silverlight 中的 CoreCLR
  6. 面向对象和面向过程思想 oc
  7. phoenixframework自动化测试平台webUI代码示例
  8. 从程序员到项目经理(13):如何管理自己的时间(下)【转载】
  9. 【二叉树的迭代版后序遍历】LeetCode 145. Binary Tree Postorder Traversal
  10. 一个学习Python的好链接