cxGrid滚动Bug和数据分页的解决办法

 使用SQL进行数据分页时,需要用数据集的滚动事件进行读包。而表格控件在设置数据源、其数据集状态改变时都会产生滚动事件。
   下面我就cxGrid的滚动事件的处理及产生始末讲解一下:
       进行SQL数据分页时,都是在滚动事件中判断记录是否到了最后一条,如果是则读下一个分页。此一分页的数据需要显示到到cxGrid中,因此读的时候又产生了滚动事件,也一定读到最后一条~如此又触发读包SQL......由此一直循环到读出所有数据,这使得数据分页的意义全无,而且~如果分页数据是主表,且存在从表,那我们程序就失去了响应。
      在前一家公司工作时,开发组长对这个问题都没找到比较好的解决方案,只能强迫用户使用按钮来明确的显示调用读包操作!我对cxGrid研究很久,希望有一个简单的设置表格的属性来解决这一问题,但一无所获。上大富翁和CSDN提问都没人回答得了!最后想到一个笨拙但简单的方法:用标志变量配合用户操作事件解决了这个问题!
   首先在数据处理类中加一标志变量,表示刚刚读了一个分页与否,并将其用可写属性导出;当滚动到最后一条记录时,判断此标志,不为真才读包;读取一个包后就设置此标志为真。其次在表格的键盘和鼠标事件中将该标志置为假。
   怎么样,够简单的吧!此解决方案完美解决了上述问题及Bug,在公司的开发框架中运行表现良好!但我还是觉得有些烦琐,希望与同行切磋。
   
   Xinggsf#t o m.c o m   # -> @  请注明技术或编程主题!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值