以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]分页加载第二页无数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90691)

--  作者:ajie5211
--  发布时间:2016/9/20 8:58:00
--  [求助]分页加载第二页无数据

数据表是SQL视图,第一页可以加载,加载代码如下

Dim filter As String = ""
Dim yz As WinForm.TextBox = e.Form.Controls("页")
Dim jl As WinForm.Label = e.Form.Controls("本页记录数")
Select Case e.Node.Level
Case 0
    filter = "版本 = \'" & e.Node.Text & "\'"
Case 1
    filter = "版本 = \'" & e.Node.ParentNode.Text & "\' and BOM系列 = \'" & e.Node.Text & "\'"
End Select
With DataTables("产品BOM一览表")
    .LoadFilter = filter \'一定要清除加载条件
    .LoadTop = 30
    .LoadPage = 0
    .LoadOver = "BOM系列"
    .Load()
    yz.Value = 1 & "/" & .TotalPages
End With
With Tables("产品BOM一览表")
    .MergeMode = MergeModeEnum.Free
    .MergeCols.Clear()
    .MergeCols.Add("产品名称")
    .MergeSort = ""
    .AllowMerge = True
    .ExtendLastCol = True
    .AutoSizeRows()
     jl.Text = "本页有" & .Rows.Count & "条记录"
End With

下一页加载不出来数据,加载代码如下

Dim jl As WinForm.Label = e.Form.Controls("本页记录数")
Dim yz As WinForm.TextBox = e.Form.Controls("页")
With DataTables("产品BOM一览表")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .LoadOver = "BOM系列"
        .Load()
        yz.Value = .LoadPage + 1 & "/" & .TotalPages
    End If
End With
With Tables("产品BOM一览表")
    .MergeMode = MergeModeEnum.Free
    .MergeCols.Clear()
    .MergeCols.Add("产品名称")
    .MergeSort = ""
    .AllowMerge = True
    .ExtendLastCol = True
    .AutoSizeRows()
     jl.Text = "本页有" & .Rows.Count & "条记录"
End With
请教下一页这里是怎么会事哪?


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

--  作者:有点蓝
--  发布时间:2016/9/20 9:25:00
--  
Dim jl As WinForm.Label = e.Form.Controls("本页记录数")
Dim yz As WinForm.TextBox = e.Form.Controls("页")
With DataTables("产品BOM一览表")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .Load()
        yz.Value = .LoadPage + 1 & "/" & .TotalPages
    End If
End With

还不行去掉所有的合并单元格代码试试

--  作者:ajie5211
--  发布时间:2016/9/20 9:36:00
--  
以下是引用有点蓝在2016/9/20 9:25:00的发言:
Dim jl As WinForm.Label = e.Form.Controls("本页记录数")
Dim yz As WinForm.TextBox = e.Form.Controls("页")
With DataTables("产品BOM一览表")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .Load()
        yz.Value = .LoadPage + 1 & "/" & .TotalPages
    End If
End With

还不行去掉所有的合并单元格代码试试

还是不行,合并单独格都去掉了,也不行!


--  作者:有点蓝
--  发布时间:2016/9/20 9:38:00
--  
上传例子测试
--  作者:blackzhu
--  发布时间:2016/9/20 9:39:00
--  
 初始的加载呢?
--  作者:ajie5211
--  发布时间:2016/9/20 9:43:00
--  

初始加载没有问题,我在考虑是不是分页加载依据列有重复值的问题,是不是要去做一个主键。


--  作者:有点蓝
--  发布时间:2016/9/20 9:46:00
--  
自己到sql后台,抓取第二页执行了什么sql,自己分析一下