注册 登录
编程论坛 VFP论坛

请问如何动态绑定Grid的Header.CLICK事件

sash 发布于 2023-01-14 16:43, 1330 次点击
由于在表单中重新设置了Grid的数据源,导致原来写在Grid.Column.header1.click中的代码失效,需要重新绑定,但是重新绑定以后,却无法确定究竟是按下哪一个headder的click事件,经检查,主要原因是其中的"this"指向有问题,如果是直接写在header.click事件中的代码,这个this就是指这个header,如:this.caption就是指这个header的caption内容,但是如果是后期绑定到header的事件中的代码,this指向的就不是所点击的header。请问这有什么办法解决?谢谢!
6 回复
#2
laowan0012023-01-14 17:23
#3
sam_jiang2023-01-14 18:20
没有动态绑定事件的说法的吧。
可以用bindevent方法。
或者自己写个派生于header的_header类,替换掉原来的header。
#4
sash2023-01-14 19:10
laowan001老师:谢谢,这个问题困扰很久,一直没有解决,非常感谢。我仔细研究,研究。sam_jiang老师,也非常感谢您的帮助。
#5
shizi02023-01-15 14:41
表格新建HeadClick方法,Bindevent(每列header,[click],表格,[HeadClick])
HeadClick中通过sys(1270)判断点击列:oCol=SYS(1270)
#6
sash2023-01-15 15:22
感谢shizi0老师!这个问题终于圆满解决。
#7
吹水佬2023-01-15 16:27
以下是引用sash在2023-1-14 16:43:45的发言:

由于在表单中重新设置了Grid的数据源,导致原来写在Grid.Column.header1.click中的代码失效,需要重新绑定

如果数据源的数据结构固定的话,可以不用重新设置,只变动数据记录就可以。
1