以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据即时加载?过程中屏幕会不停的闪动?且自动切换到第一行?(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40250)

--  作者:aalons
--  发布时间:2013/9/13 0:57:00
--  数据即时加载?过程中屏幕会不停的闪动?且自动切换到第一行?(已解决)
1、数据即时加载?
大家用什么办法最好?哪个效率最高?当前我用的是FILL,再搞个计时器,定时加载???有没有更好的???

2、更新过程中屏幕会不停的闪动?
如何让其不闪动?但数据有变化,加载最新数据。

3、且自动切换到第一行?
每次加载后,本来在看其他行的,更新后自动切换到第一行了?



 谢谢jspta的分享!谢谢狐爸的提示
[分享]实用的刷新数据表功能(刷新光标不移动)  发帖心情 Post By:jspta 2013-9-13 15:43:00 [只看该作者] 

 

一般系统开发过程中,用户都有刷新数据表功能,但是使用系统自带的刷新功能(load),会使表格回到第一行,这样严重影响了客户使用。

虽然可以使用dataRow.load,但不能刷新整张表。

 

另有很多狐友会使用窗口表,并且使用fill进行加载,之后即使刷新表也会使用fill重新加载。其实这不需要,应该使用Load进行加载。

不过因为load的特性,如果表本身没有设置加载条件loadFilter,load后会导致把后台所有数据加载,可能会导致一些权限问题。

 

下面分享一个简单的刷新功能,代码非常简单,有需要的朋友拿去,有不足的地方请不吝斧正

(一定要先设置该表的LoadFilter,因为本人使用的是窗口表,第一次加载时已经设置完成)

 

Dim t As Table = Args(0)
Dim flt As String = t.Filter       \'获取过滤条件
Dim Int As Integer = t.Position    \'获取行位置
Dim p As point = t.ScrollPosition  \'获取行在屏幕中位置
t.StopRedraw
t.DataTable.Load(False)
t.Filter = flt
t.Position = Int
t.ScrollPosition = p
t.ResumeRedraw
[此贴子已经被作者于2013-9-13 16:31:14编辑过]

--  作者:aalons
--  发布时间:2013/9/13 7:31:00
--  
等人回答,我顶
--  作者:逛逛
--  发布时间:2013/9/13 7:44:00
--  

刷新的时候,用了StopRedraw 和 ResumeRedraw 吗?


--  作者:逛逛
--  发布时间:2013/9/13 7:49:00
--  
刷新还是以事件驱动为好,帮助里有 事件编程
--  作者:blackzhu
--  发布时间:2013/9/13 7:53:00
--  
本来就是这样的.
--  作者:逛逛
--  发布时间:2013/9/13 7:59:00
--  
以下是引用blackzhu在2013-9-13 7:53:00的发言:
本来就是这样的.

刷新的时候不就很短的闪了一下,不会不停的闪啊?


--  作者:aalons
--  发布时间:2013/9/13 9:05:00
--  
那还是闪动了下 ,且焦点自动移到第一行了
--  作者:aalons
--  发布时间:2013/9/13 10:18:00
--  

--  作者:aalons
--  发布时间:2013/9/13 12:21:00
--  
吃饭的时候顶下
--  作者:狐狸爸爸
--  发布时间:2013/9/13 12:41:00
--  

重新加载表,完全不闪一下,是不可能的,而且也应该回到第一行的。