uniDBGrid实行多选表格行
http://blog.csdn.net/shuiying/article/details/11374655
uniDBGrid本身是支持checkBox多选的,但必须是Boolean的字段才行,只要是Boolean类型的字段,显示在uniDBgrid中就是带CheckBox的界面。
网上大多数人推荐的方法是在构建查询串的时候,在查询串中添加一个虚拟的Boolean字段来实现多选记录。但一个系统必然有很多的查询串,都要去加个虚拟字段,维护上太麻烦。可以利用TclientDataSet的计算字段来实现多选,而且不需要修改查询串。首先在设计界面添加以下组件
设置Query1的SQLConntcion属性为SQLConnection1。
设置Dsp1的Dataset属性为Query1.
设置Query1的SQL查询串为:select kh_name from khinfo (你可以更改为自己的实际数据查询)
设置CDS1的ProviderName属性为DSP1;
设置DataSource1的Dataset属性为CDS1;
设置uniGrid的Datasource属性为Datasource1.
后面简单的步骤如下:
1.在Delphi设计界面,给ClientDataset添加一个计算字段:CheckBox,如图:
2.在UniDBgrid中添加一个列,列的FieldName属性选择为新建的字段:checkbox,如图:
3.在uniGrid控件的OnCellClick事件中写入以下代码:
- if not CDS1.Active then Exit;
- if CDS1.RecordCount=0 then Exit;
- CDS1.Edit;
- CDS1.FieldByName('checkbox').AsBoolean:= not CDS1.FieldByName('checkbox').AsBoolean;
- CDS1.Post;
4.获得取被选择的表格,可以有两种方法
(1)可以通过遍历clientDataSet的checkbox字段的值来取得被选择的表格记录行,适用于数据量小的时候。
(2)可以在OnCellClick事件中就用一个StringList类型的变量来记录被选取的数据的记录的主键,进一步处理的时候只需读这个StringList的值就可以,效率要高于遍历clientDataSet,但需要在选中状态改变的时候添加或者移除相应的主键,保持TStringList中记录的主键与界面上选中的记录主键保持同步。
附一张实际运行的图片:
uniDBGrid实行多选表格行的更多相关文章
- 在html页,使用ctrl,shift多选表格行
前段时间,项目中遇到这样一个需求.需要在页面中像windows资源管理器中一样可以使用ctrl和shift键来多选. <html> <head> <style> b ...
- jquery完成带复选框的表格行高亮显示
jquery完成带复选框的表格行高亮显示 通过jquery技术来操作表格是件简单的事,通过jquery的语法,可以很轻松的完成表格的隔行换色,悬浮高亮,在实际的应用中可能会出现表格中带复选框的,删除时 ...
- 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框
在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化.并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common, ...
- jquery完成带单选按钮的表格行高亮显示
jquery完成带单选按钮的表格行高亮显示 上篇博客写的是复选框的,这次写的是单选框的,有时查询的时候,只能选择一条记录,如果将选中的这条记录的行高亮显示,同时该行的单选按钮也被选中了,这样会提高用户 ...
- AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载
特别声明: 提供的源代码已经包含了 AppBoxPro 的全部源代码,用 VS2012 打开项目后,直接 Ctrl+F5 可以运行起来(默认使用VS自带的LocalDB数据库). FineUIPro是 ...
- JQuery EasyUI DataGrid根据条件设置表格行样式(背景色)
1.javascript定义函数返回样式 <script type="text/javascript"> //根据条件设置表格行背景颜色 function setRow ...
- JS组件系列——Bootstrap Table 表格行拖拽
前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到 ...
- JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
前言:前天刚写了篇JS组件系列——Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行.博主用了半天时间研究了下,效果是出来了,但是感觉不尽 ...
- jquery 动态添加表格行
jquery 动态添加表格行 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <h ...
随机推荐
- jsp jstl quote symbol expected
org.apache.jasper.JasperException: /WEB-INF/jsp/user/index.jsp (line: 2, column: 27) quote symbol ex ...
- python变量、注释、程序交互、格式化输入、基本运算符
变量 ...
- Centos Tomcat监控
1.Window环境下jdk的bin目录中提供jvisualvm.exe工具,但是linux环境中的jdk未提供. 用window下的jvisualvm远程监控linux环境下的tomcat 两种连接 ...
- jmeter压测之添加负载机
jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...
- 模拟器 Unable to execute simctl install Error 117
ios 模拟器 Unable to execute '"/usr/bin/xcrun" simctl install "/Users/tt/PAServer/scrat ...
- Java中的反射总结
反射是获取运行时类信息,即常量区中的Class信息. 要获取类信息,必然需要依据,不然系统怎么指定你要获取那个类信息, 类信息在java中就是Class类的一个对象,它是一个java类抽象,换句话说它 ...
- HLSL ddx / ddy
[HLSL ddx / ddy] 在光栅化的时刻,GPUs会在同一时刻并行运行很多Fragment Shader,但是并不是一个pixel一个pixel去执行的,而是将其组织在2x2的一组pixels ...
- 【Django】django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
最近学习Django的过程中,在cmd打算使用python manage.py shell来测试数据的时候,当我一导入自己写的model类,就发现报了这个错误django.core.exception ...
- animation渐进实现点点点等待效果
<style> @keyframes dot { 0% { width: 0; } 33% { width: .2em; } 66% { width: .5e ...
- POJ-3268.SilverCowParty.(最短路 + 图的转置)
本题思路:对原图和原图的逆图分别用一次最短路,找出最大值即可. 一开始是我是对每个顶点spfa搜了一波,结果判题时间巨长,还好这个题的数据量不是很大,所以就用了另一种思路. 参考代码:spfa单结点爆 ...