DBGridEh中的checkbox问题!!!(100分)

  • 主题发起人 主题发起人 shenfeng_126
  • 开始时间 开始时间
S

shenfeng_126

Unregistered / Unconfirmed
GUEST, unregistred user!
表中有一个bit类型的字段,当query.open以后,DBGridEh会在bit字段的这一列显示checkbox。
请问我能不能通过其它字段来控制checkbox是否显示?也就是说只有符合条件的数据中的bit列是checkbox,不符合条件的不显示checkbox,我想DBGridEh应该有一个事件能控制,但不知道是哪个

请问哪们大哥知道???
 
可以的,
procedure CheckValueFeildChange(Sender: TField);
begin
if FieldByName('icheck').asBoolean then
begin
//显示需要显示的列
end
else
begin
//隐藏需要隐藏的列
end;
end;

CDS_Temp.FieldByName('icheck').OnChange := CheckValueFeildChange;

这样就可以了,
俺都试过了,
 
CDS_Temp.FieldByName('icheck').OnChange := CheckValueFeildChange;
这个赋值语句放在FormCreate里做就ok了,
 
Ads.FieldByName('').OnChange
都可以,
 
我不是用来隐藏列,列照样显示,只是想控制这一列的checkbox是否显示
 
比如说有一个bit的类型的字段:性别,当性别为'男'时,才显示checkbox,而为'女'时不显示checkbox。
 
那如果是女的想改成男的你有怎么办,不合理嘛
 
这个例子是不太合理,我只是举个例子而已

实际上是我的sql中用了union语句,有一个A表中存在bit类型字段,而B表中不存在bit类型字段,但业务需要所以把两个表union在一起显示,
问题就在这里,因Bit表中不存在bit类型字段,但出来的datagrid中出现了checkbox,给客户一种错觉,
 
在你不含有bit类型字段的表里加一个bit字段,然后union不就可以了吗?
 
呵呵,我知道你的意思,其实你不是想要显示CheckBox ,你只是想要针对莫个条件显示一个打勾的符号。。 不用bit 栏位,用string 栏位,当 onchange 时候利用特殊符号显示其效果 [√] ,呵呵赶快报存起来,我也是珍藏很久了。。。。呵呵
 
说明白点就是有些行根据条件不需要显示checkox,而其它行必须要显示checkbox
 
我的目的和shenfeng_126一样,我用select cast(0 as bit)和 临时表的方法已经解决。
 
那就恭喜你了,创建控件遮住吧,嘿嘿...
 
真的就没有办法吗
 
后退
顶部