C#实现的 快速查找通用组件 YHSoft.QuickFind
来源:互联网 发布:贝因美积分网络兑换 编辑:程序博客网 时间:2024/05/16 16:03
功能:
在给定的DataTable中筛选出指定的记录,以DataRow形式返回。返回后自己根据需要处理。提供6种重构(ListView显示列的数量不同)。
一、组件界面
组件显示默认界面
二、调用:
添加组件YHSoft.QuickFind.dll引用,并using
调用代码:
DataSet clientDs = new DataSet();string[,] searchFlds = { { "codePy", "拼音助记符" }, { "codeWb", "五笔助记符" } };//如需要更多的检索字段,请在此定义try{DataTable quickFindTb = clientDs.Tables["staffNav"].Copy();FrmQuickFind quickFind = new FrmQuickFind(quickFindTb, "值班人员", searchFlds, "id", "name","姓名", 20, false, "");//两列显示参数调用quickFind.ShowDialog();if (quickFind.outDr != null){//你自己的代码}quickFindTb.Dispose();}catch (Exception ex){MessageBox.Show(ex.Message);}//三到七列显示参数调用 //略
三、功能详解
1、总体说明
(1) 数据表(DataTable):建议用数据副本传入,需要有主键,如未建立主键,请先为数据表建立主键,在组件中会对数据表按检索字段重新排序,不恢复传入前排序,不处理使用后的副本DataTable;
(2) 检索字段:所有的检索字段必须在传入数据表(DataTable)中存在,如缺少字段,组件会自行退出。
(3)显示字段:所有的显示字段必须在传入数据表(DataTable)中存在,数据表(DataTable)中必须有enabled字段,bool类型,如无此字段,请自己根据条件在DataTable中添加此字段,如缺少字段,组件会自行退出。
(4)未输入筛选条件时,筛选结果区域默认显示为数据表(DataTable)的前N条记录。
(5)汉字的检索字段为所有有效的显示字段(最多6个,取决于你使用了哪个调用),无论哪个字段包含指定的输入字符(汉字)都视为可能需要的记录2、查找条件区域
(1)“TextBox”:检索条件输入区域。筛选字段取决于传参数的筛选字段集合,F4循环切换你的筛选字段集合,F2切换到指定字符(汉字)检索模式,F4切回时记录你切换前的筛选条件,不可输入英文半角”%”字符,其它无限制,输入字符要符合检索字段规则。
(2)“首位顺序匹配”:从检索字段首位开始检索与TextBox内容相同的记录(切换为汉字检索同样适用);
(3)“包含连续匹配”: 在检索字段中查找包含与TextBox内容相同的记录(切换为汉字检索同样适用);
(4)“完全匹配”: 在检索字段中查找与TextBox内容完全相同的记录(切换为汉字检索同样适用);
(5)“显示停用记录”:是否在筛选结果中显示已停用/无效的记录,此值默认值为调用时参数传入值,可在界面调整,不保留记忆功能(切换为汉字检索同样适用);
(6) “显示记录数”:筛选结果区域显示的筛选记录数量,此值默认值为调用时参数传入值,可在界面调整,最小为1,最大为50,不保留记忆功能(切换为汉字检索同样适用);3、筛选结果区域
图中为最大显示字段数的截图(7个显示字段,本说明以此图说明)
你看到的1-6列为参数传入列,此6列为你调用组件时传入显示列参数的第2-7列参数,第1个为主键列,在组件中不显示,第7列为组件加入的”是否停用”列,列宽度(除第1列,宽度恒定为0,不可调整)为字段内容最大宽度或列标题宽度(在这两个宽度中取大的作为显示时的列宽度,可以运行时调整,不保留记忆功能);4、操作说明
(1)“TextBox”输入后无需要其它操作,自动筛选出符合条件的记录,查寻中的其它条件改变后自动刷新筛选结果;
(2)“关闭”按钮为FORM的CancelButton,可通过ESC键关闭界面;
(3)在”TextBox”中直接回车,选中首条记录;
(4)在”TextBox” 按方向键↓可直接选中第一条记录,在结果集中可上下键选中想要的记录,回车键选中记录,并退出界面;
(5)筛选结果集中按↑键且是第一条记录时,”TextBox”获得输入焦点,在已输入字符最后;
(6)鼠标可以在任意时候选中需要记录并退出界面;
5、其它说明
(1)组件最少需要2个显示字段,最多支持7个显示字段,其中第一个字段为主键字段,组件中不显示,如果你是2个显示参数的调用,并且将第2个显示参数为“”值,组件界面你看不到结果集(只有第1个,已被隐藏了);
(2)选中结果后,组件将选中结果以Datarow参数传出,传出后自己根据需要处理,但需要注意传出的DataRow与数据源表中的DataRow是数据相同,不是DataRow相同,主要是由于RowState不同而不能判定为同一DataRow,数据源表的RowState为DataRowState.Unchanged,而传出DataRow的RowState为
DataRowState.Added,此属性为只读属性,无法在代码中修改;下载地址:http://download.csdn.net/detail/meerio/9550742
使用过程 的问题可与我联系!
如果你有更好的见意请与我联系,欢迎指正完善。
邮箱:ZQJia@outlook.com
QQ:18665960
- C#实现的 快速查找通用组件 YHSoft.QuickFind
- Extjs4快速查找组件的方法
- jQuery实现的快速查找
- C# 中通用winform组件的数据绑定
- C# 中通用winform组件的数据绑定
- C#一个singleton的通用实现
- 基于C#的通用A*算法实现
- 用C#实现通用的DAL Insert
- js的通用组件
- 快速排序以及二分查找的实现
- 通用日志记录组件实现
- c语言实现的通用二分查找算法
- js实现通用的微信分享组件示例
- 快速立即除法的乘法实现(通用算法)
- 快速实现工程makefile的简单通用模板
- C# 通用存储过程ORMapping的实现 [真正实现篇]
- C# 实现的二分查找法
- Visual C#实现自定义组件的设计
- 页面调度算法——FIFO
- 如何修改vim中tab键的距离
- Android ListView中onItemClickListener事件失效的解决方法
- Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
- 基本选择工具
- C#实现的 快速查找通用组件 YHSoft.QuickFind
- Linux系统中grep命令
- JavaBasic
- HTTP状态码详解
- 关于 包、帧、数据报、段和消息 的概念区别
- strcpy、strcat函数源码,strncpy,strncat,strncmp,strtok
- c primer plus第6章总结:循环
- 浅谈web前端与后台数据交互
- Packet for query is too large