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


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

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

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
分页加载点下一页后不显示数据  发帖心情 Post By:2022/2/10 19:49:00 [只看该作者]

With DataTables("缴费情况")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage  + 1
        .LoadTop = 30 '每页5行
        .LoadOrder = "日期 DESC,单号 DESC"
        .LoadReverse = True
        .Load()
        e.Form.Controls("TextBox3").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

以前是没问题的,发现软件升级后下一页数据不显了,刚看了一下可用SQLLoad处理,可我原来的表是Normal型,改为SQLTable型很多代码不是要同步改?太折人了!图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望: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设置加载顺序。


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/2/10 21:26:00 [只看该作者]

 .LoadOrder = "日期 DESC,单号 DESC"
允不允许同时有两个加载顺序?单号不会重复,我要的就是最新的数据在前面效果,所以上面的代码没问题。
[此贴子已经被作者于2022/2/10 21:26:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 21:39:00 [只看该作者]

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/2/10 21:50:00 [只看该作者]

改为这样了依然没有下一页:
With DataTables("缴费情况")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage  + 1
        .LoadTop = 30 '每页5行
        .LoadOrder = "_Identify"
        .LoadReverse = True
        .Load()
        e.Form.Controls("TextBox3").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 22:21:00 [只看该作者]

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

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/2/10 22:39:00 [只看该作者]

改为这样一样不显下一页数据,肯定不止30行,28行月租停车数据,8行临时停车数据。
With DataTables("缴费情况")
    If .TotalPages > 0 And .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage  + 1
        .LoadTop = 30 '每页30行
        .LoadReverse = True
        .Load()
        e.Form.Controls("TextBox3").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With
[此贴子已经被作者于2022/2/10 22:49:09编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/2/10 22:40:00 [只看该作者]

下一页,上一页,以及TextBox2中的数据都正确,就是没有加载下一页数据。

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/10 23:06:00 [只看该作者]

调试

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/2/10 23:26:00 [只看该作者]

一个窗口是空白,一个窗口是_Identify

 回到顶部
总数 18 1 2 下一页