主题:动态Grid中各行交替变色问题
ihorse
[专家分:970] 发布于 2008-08-06 06:27:00
用一下代码可以实现静态grid的交替变色,只需要将下面代码写入表格init事件中即可:
this.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255,),rgb(255,2,5))','column')
但是,如果表格是动态创建的或者激活的(例如,点了某个按钮后才创建的该grid,并且可能重新给grid的属性进了设置),这些代码将不起作用。如何解决?
回复列表 (共5个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-08-06 08:01:00
每次更新数据时,都要重新运行该语句啊~
板凳
ihorse [专家分:970] 发布于 2008-08-06 08:34:00
由于该语句是写在gird的init事件中,那么, 每次更新时是不是要在按钮代码中这样修改才可行?
thisform.grid1.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255,),rgb(255,2,5))','column')
即将以前的this修改为thisform.grid1?
*thisform.grid1.setall('width',10,'column')
thisform.griddbf.setall('dynamicinputmask','@Z',"column")
thisform.griddbf.setall('alignment',2,"column")
thisform.griddbf.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255,),rgb(255,2,5))','column')
thisform.griddbf.refresh
thisform.refresh
现在修改为以上这样还是不行,不懂什么原因!
3 楼
cbl518 [专家分:57140] 发布于 2008-08-06 08:34:00
我运行了一下,发现你的表达式错误造成无颜色!
this.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255[size=4][color=FF0000],[/color][/size]),rgb(255,2,5))','column')
4 楼
cbl518 [专家分:57140] 发布于 2008-08-06 08:40:00
[quote]由于该语句是写在gird的init事件中,那么, 每次更新时是不是要在按钮代码中这样修改才可行?
thisform.grid1.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255,),rgb(255,2,5))','column')
即将以前的this修改为thisform.grid1?[/quote]
只要对象引用正确,那就和你的对象引用无关系。
更新数据源后:
thisform.grid1.RecordSource=""
thisform.grid1.RecordSource="临时表"
thisform.grid1.setall('DynamicBackColor','iif(recno(thisform.grid1.RecordSource)%2=0,rgb(0,5,255),rgb(255,2,5))','column')
5 楼
ihorse [专家分:970] 发布于 2008-08-06 10:20:00
[quote]
我运行了一下,发现你的表达式错误造成无颜色!
this.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255[size=4][color=FF0000],[/color][/size]),rgb(255,2,5))','column')
[/quote]
把那个红色的逗号去掉就一切OK了,感谢cbl!
我来回复