cxGrid之checkbox小结
http://www.cnblogs.com/Kim53622744/p/4428997.html
在cxgrid中增加选择列
1、在dataset(query/table/clientdataset etc.)fieldeditor中增加计算字段fdSelect,datatype 为string,当然也可以其它类型。fieldkind设为fkCalculated或fkInternalCalc;设为fkInternalCalc时,应当注意在选择语句如下写:select '0' as fdselect,* from tableA,否则会报field "***" not found。设为fkCalculated时,不需要改变原语句。
object strngfldWaitInfdselect: TStringField
FieldKind = fkInternalCalc
FieldName = 'fdselect'
end
2、cxgrid DbTableView中增加列cxgrdbclmnSelect,设置Properties为checkbox,具体设置如下:
object cxgrdbclmnSelect: TcxGridDBColumn
Caption = #36873#25321
DataBinding.FieldName = 'fdSelect'
PropertiesClassName = 'TcxCheckBoxProperties'
Properties.DisplayGrayed = 'nssUnchecked'
Properties.ValueChecked = '1'
Properties.ValueGrayed = 'nssUnchecked'
Properties.ValueUnchecked = '0'
MinWidth = 25
Options.Editing = False //重要,许多朋友讲到,不响应cellClick事件,设为false后就可响应。
Options.Filtering = False
Options.IncSearch = False
end
3、根据需要在CellClick或mouseup中增加代码
var
row: Integer;
begin
if cxgrdbtblvwGrid1DBTableView1.ViewData.RecordCount = 0 then
Exit;
row := cxgrdbtblvwGrid1DBTableView1.DataController.FocusedRowIndex;
if cxgrdbtblvwGrid1DBTableView1.ViewData.Records[row].Values[0] = '1' then
cxgrdbtblvwGrid1DBTableView1.ViewData.Records[row].Values[0] := '0'
else
cxgrdbtblvwGrid1DBTableView1.ViewData.Records[row].Values[0] := '1';
end;
4、f9看下效果。
PS:fkCalculated与fkInternalCalc
Fields calculated by SQL servers or the Borland Database Engine to display the results of a query that returns a live dataset have a FieldKind of fkInternalCalc, not fkCalculated. This is because the field values are stored in the dataset. Calculated fields in a client dataset that are calculated in an event handler but stored in the dataset also have a FieldKind of fkInternalCalc instead of fkCalculated. Unlike regular calculated fields, internally calculated fields can be used in filter expressions. They can be edited, but the changes are discarded. To prevent editing, set the property to true.
Delphi cxgrid 使用方法
1.绑定数据
方法
cxGrid1DBTableView1.DataController.DataSource:=DataSource1
2.去掉"Drag a column header here to group by that column"
方法
cxGrid1DBTableView1.OptionsView.GroupByBox置为False
3.去掉表头下三角数据
方法
cxGrid1DBTableView1.Optionscustomize.columnfiltering置为False
4.增加序号
方法
在dataset 里边增加 Mycount 字段 类型为 string
在 CXgrid 增加显示字段 序号 mycount
为该字段写事件
procedure Tfrm_form.ReDataSet2mycountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
text:=inttostr(redataset2.RecNo);
end;
将 序号 绑定 字段 Mycount
5.CXgrid 增加一栏显示checkBox
方法
在dataset 里边增加 MySelect字段 类型为 BOOLEAN
在 CXgrid 增加显示字段 选择 select
设定select 字段的Properties为 CheckBox . ReadOnly = False;
NullStyle = nssUnchecked
procedure Tfrm_form.cxGrid1DBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
var
Row: Integer;
begin
inherited;
if ACellViewInfo.Item.Name = 'mycheck' then
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex;
if cxGrid1DBTableView1.ViewData.Records[Row].Values[0] = True then
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := True;
end;
end;
procedure Tfrm_form.cxGrid1DBTableView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Row: Integer;
begin
inherited;
//单选
// for Row:=0 to cxGrid1DBTableView1.DataController.RecordCount-1 do
// begin
// cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False;
// end;
//多选
if cxGrid1DBTableView1.DataController.RecordCount<>0 then
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex;
if cxGrid1DBTableView1.ViewData.Records[Row].Values[0] = True then
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := True;
end;
end;
cxGrid之checkbox小结的更多相关文章
- cxGrid增加一栏显示checkBox的设置方法
鉴于本人首次设定cxGrid的CheckBox的时候费了很大劲,发现很多人都会碰到这个问题,现在总结一下,以供各位互相学习借鉴. 步骤如下(不分先后): 1. cxGrid添加完自己所需的所有字段后, ...
- Delphi - cxGrid设定字段类型为CheckBox
cxGrid设定字段类型为CheckBox 1:设定OraQuery属性 CachedUpdates设定为True: 双击打开OraQuery,选中Update SQLs页面,Insert.Updat ...
- checkbox在vue中的用法小结
关于checkbox多选框是再常见不过的了,几乎很多地方都会用到,这两天在使用vue框架时需要用到checkbox多选功能,实在着实让我头疼,vue和原生checkbox用法不太一样,之前对于vue插 ...
- 关于 cxGrid 的过滤问题
http://bbs.csdn.net/topics/390536919 关于 cxGrid 的过滤问题 [问题点数:20分,结帖人zhengyc653] 不显示删除回复 ...
- DevExpress控件的GridControl控件小结
DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条 ...
- delphi cxgrid 使用方法
delphi cxgrid 使用方法1.绑定数据 方法 cxGrid1DBTableView1.DataController.DataSource:=DataSource12.去掉"Drag ...
- cxGrid的使用方法
来源 http://www.cnblogs.com/djcsch2001/archive/2010/07/19/1780573.html 1. 去掉GroupBy栏 cxGrid1DBTable ...
- android基础小结
(注:此小结文档在全屏模式下观看效果最佳) 2016年3月1日,正式开始了我的android学习之路. 最最开始的,当然是学习怎样搭载环境了,然而苦逼的我在win10各种坑爹的指引下还是安装了一个星期 ...
- 1:CSS中一些@规则的用法小结 2: @media用法详解
第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule ...
随机推荐
- BZOJ 1969 航线规划 - LCT 维护边双联通分量
Solution 实际上就是查询 $u$ 到 $v$ 路径上 边双的个数 $ -1$. 并且题目仅有删边, 那么就离线倒序添边. 维护 边双 略有不同: 首先需要一个并查集, 记录 边双内的点. 在 ...
- BZOJ 1391 [CEOI] Order - 网络流 最大流
Solution 非常简单的建边!!! 但是刚开始的代码不够体现社会主义的优越性, 于是我 .... 惨痛教训啊... 终于到了今天才能够体现社会主义优越性... Code #include<c ...
- BZOJ1233 干草堆 - 单调队列优化DP
问题描述: 若有干个干草, 分别有各自的宽度, 要求将它们按顺序摆放, 并且每层的宽度不大于 它的下面一层 , 求最多叠几层 题解: zkw神牛证明了: 底边最短, 层数最高 证明: ...
- 杭电1518 Square(构成正方形) 搜索
HDOJ1518 Square Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 标准IO缓冲机制
参考资料: https://q16964777.iteye.com/blog/2228244 知道缓冲有几种模式:无缓冲.行缓冲.全缓冲.通过判断FILTE中的 _flags 的判断可以知道究竟是那种 ...
- 检查mysql是否运行
netstat -tunple|grep mysql
- libusb开发
转:https://www.cnblogs.com/ele-eye/p/3261970.html
- Composer 中文镜像 Lavavel-china 公益项目
『Composer 中国全量镜像』是由 Laravel China 社区联合 又拍云 与 优帆远扬 共同合作推出的公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务. ...
- abp项目中无法使用HttpContext.Current.Session[""]的问题
web项目Global.asax.cs中加入如下代码 public override void Init() { this.PostAuthenticateRequest += (sender, e) ...
- javase高级技术 - 泛型
在写案例之前,先简单回顾下泛型的知识 我们知道,java属于强变量语言,使用变量之前要定义,并且定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值. 所谓“泛型”,就是“宽泛的数据类 ...