以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  翻页没有数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124008)

--  作者:aza520
--  发布时间:2018/8/28 20:19:00
--  翻页没有数据
用分页加载,有5页数据,但只显示第一页的,翻页时2、3、4、5页数据都不显示,如图,我检查了翻页代码,应该没问题。请问老师,可能是什么原因?

图片点击可在新窗口打开查看此主题相关图片如下:11111.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2018/8/28 20:30:00
--  
第一次加载、翻页代码呢?发上来看咯

--  作者:aza520
--  发布时间:2018/8/28 20:34:00
--  
加载树代码:
Dim Filter As String = "1=1"

Dim dr = e.node.FullPath.split("\\") \'获取生成此节点的行
If e.Node.Text <> "加载所有数据" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[项目名称] = \'" & dr(0) & "\'"
        Case 1
            Filter = "[项目名称] = \'" & dr(0) & "\'And [施工合同段] = \'" & dr(1) & "\'"
        Case 2
            Filter = "[项目名称] = \'" & dr(0) & "\'And [施工合同段] = \'" & dr(1) & "\' And [安全费用分类] = \'" & dr(2) & "\'"
    End Select
End If

If User.Name = "开发者" Or User.Name = "管理员" Then
    DataTables("安全费用表").LoadFilter = filter
    DataTables("安全费用表").LoadOver="支出日期"
    DataTables("安全费用表").LoadReverse = True
    DataTables("安全费用表").LoadTop= 10
    DataTables("安全费用表").Load
    Tables("安全费用表").sort="支出日期"
Else
    DataTables("安全费用表").loadfilter = "(承包人机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 监理机构 in (\'" & User.Roles.replace(",","\',\'") & "\')  or 业主机构 in (\'" & User.Roles.replace(",","\',\'") & "\')) and " & Filter
    DataTables("安全费用表").LoadOver="支出日期"
    DataTables("安全费用表").LoadReverse = True
    DataTables("安全费用表").LoadTop= 10
    DataTables("安全费用表").Load
    Tables("安全费用表").sort="支出日期"
End If
e.Form.Controls("TextBox5").Value = 1 & "/" & DataTables("安全费用表").TotalPages
vars("安全费用表filter") = DataTables("安全费用表").LoadFilter

翻页代码:
With DataTables("安全费用表")
    .LoadPage = 0 \'加载第一页
    .Load()
    e.Form.Controls("TextBox5").Value = 1 & "/" & .TotalPages
End With

With DataTables("安全费用表")
    If .LoadPage > 0 Then
        .LoadPage  = .LoadPage - 1
        .Load()
        e.Form.Controls("TextBox5").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

With DataTables("安全费用表")
    If .LoadPage < .TotalPages - 1
        .LoadPage = .LoadPage  + 1
        .Load()
        e.Form.Controls("TextBox5").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With


With DataTables("安全费用表")
    If .LoadPage < .TotalPages - 1
        .LoadPage  = .TotalPages - 1
        .Load()
        e.Form.Controls("TextBox5").Value = .TotalPages & "/" & .TotalPages
    End If
End With

--  作者:有点蓝
--  发布时间:2018/8/28 20:42:00
--  
支出日期是不是很多都重复的?

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

--  作者:aza520
--  发布时间:2018/8/28 20:54:00
--  
取消支付日期作为分页依据列,还是不行


--  作者:aza520
--  发布时间:2018/8/28 20:59:00
--  
解决了
--  作者:aza520
--  发布时间:2018/8/28 21:25:00
--  
还是解决不了
--  作者:有点蓝
--  发布时间:2018/8/28 21:40:00
--  
实例发上来看看
--  作者:有点甜
--  发布时间:2018/8/29 10:21:00
--  

1、你的【支出日期】有重复值吗?如果有重复值,不建议作为分页依据,尽量用_Identify主键做依据

 

DataTables("安全费用表").LoadOver="支出日期"

 

2、做个例子发上来测试一下。