回 帖 发 新 帖 刷新版面

主题:动态Grid中各行交替变色问题

用一下代码可以实现静态grid的交替变色,只需要将下面代码写入表格init事件中即可:

this.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255,),rgb(255,2,5))','column')

但是,如果表格是动态创建的或者激活的(例如,点了某个按钮后才创建的该grid,并且可能重新给grid的属性进了设置),这些代码将不起作用。如何解决?

回复列表 (共5个回复)

沙发

每次更新数据时,都要重新运行该语句啊~

板凳

由于该语句是写在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 楼


我运行了一下,发现你的表达式错误造成无颜色!

this.setall('dynamicbackcolor','iif(mod(recno(),2)=0,rgb(0,5,255[size=4][color=FF0000],[/color][/size]),rgb(255,2,5))','column')

4 楼

[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 楼

[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!

我来回复

您尚未登录,请登录后再回复。点此登录或注册