Foxtable(狐表)用户栏目专家坐堂 → 分页加载点下一页后不显示数据


  共有4469人关注过本帖树形打印复制链接

主题:分页加载点下一页后不显示数据

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 20:36:00 [显示全部帖子]

示例四

分页加载的时候,默认是根据主键分页的,可以用LoadOver属性改变分页列。

例如:

With DataTables("订单")
    .LoadTop = 
20

    .LoadPage = 
3
    .LoadOver = 
"日期"
    .Load()

End
 With

表示根据日期列分页,每页20行,加载第四页。

我们的建议是:尽量采用主键列或者其他值不会重复的列(如身份证号码),作为分页依据列,因为如果分页依据列的值有重复,将会影响分页的准确性,例如上面的代码根据日期分页,每页显示20行,如果某一天有40个订单,那么这40个订单会显示在同一个页面中,而不会按我们期望的那样分成两页显示。


示例五

分页加载默认是顺序,如果希望倒序加载,可以将LoadReverse属性设置为True。
例如按日期分页倒序加载,也就是最新的数据在前:

With DataTables("订单")
    .LoadTop = 
20

    .LoadPage = 
3
    .LoadOver = 
"日期"
    
.LoadReverse = True
    .Load()

End
 With

需要注意的是,经常有用户用LoadOrder属性来设置分页加载的顺序,这是无效的。
要记住:分页加载的时候,用
LoadOver和LoadReverse来设置分页列和加载顺序,非分页加载的时候,用LoadOrder设置加载顺序。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 21:39:00 [显示全部帖子]

请认真理解2楼红色的代码说明,如果一遍看不懂,就看10遍

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 22:21:00 [显示全部帖子]

默认就是_Identify列,可以去掉.LoadOrder = "_Identify"

另外确定数据有超过30行吗?另外必须已经加载过第一页,否则.TotalPages是没有值的

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 23:06:00 [显示全部帖子]

调试

msgbox(DataTables("缴费情况").loadfilter)
msgbox(DataTables("缴费情况").LoadOrder )

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/11 8:26:00 [显示全部帖子]

请上传实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/11 11:55:00 [显示全部帖子]

With DataTables("缴费情况")
    If .TotalPages > 0 And .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage  + 1
        .LoadTop = 30 '每页30行
        .LoadOver = "_Identify" 如果设置了LoadReverse = True必须同时指定分页列
        .LoadReverse = True
        .Load()
        e.Form.Controls("TextBox3").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/11 15:39:00 [显示全部帖子]

主界面中的下一页和BeforeLoadInnerTable事件没有半毛钱的关系

代码有用到SetColVisibleWidth,覆盖了窗口的设置

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/11 16:09:00 [显示全部帖子]

代码有用到SetColVisibleWidth,覆盖了窗口的设置

 回到顶部