以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]分页显示已经加载到DataTable中的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=112718)

--  作者:WUZHAN
--  发布时间:2018/1/1 20:13:00
--  [求助]分页显示已经加载到DataTable中的数据
在移动开发教程中的案例代码,如何修改代码可以实现分页显示已经加载到datatable中的数据呢,同时每行首有序号列

2、自定义函数list的代码改为:

Dim e As RequestEventArgs = args(0)
\'
获取要显示的页
Dim
 page As Integer = 0 \'默认page0,显示第一页
Dim
 pageRows As Integer = 10 \'每页10
If
 e.GetValues.ContainsKey("page"Then  \'如果地址中有page参数
    Integer.TryParse(e.GetValues("page"), page) \'
提取page参数
End
 If
Dim
 StartRow As Integer = page * pageRows + 1 \'此页第一行
Dim
 EndRow As Integer = (page + 1) * pageRows \'此页最后一行
\'
获取该页数据
Dim
 cmd As New SQLCommand
cmd
.ConnectionName = "orders" \'记得设置数据源名称
cmd
.CommandText = "S elect Count(*) From {订单}"
Dim
 Count As Integer = cmd.ExecuteScalar() \'获取总的行数
Dim
 Pages As Integer = Math.Ceiling(Count/PageRows) \'计算出总页数
cmd
.CommandText = "S elect * F rom (S elect Row_Number() Over(Order by 日期 desc) As [NO.],[_Identify],产品,客户,数量,单价,日期 From 订单) As a "
cmd
.CommandText = cmd.CommandText & "  Where [NO.]>= " & StartRow & " And [NO.] <= " & EndRow
Dim
 dt As DataTable = cmd.ExecuteReader
Dim
 wb As New WeUI
\'
根据此页数据生成网页
With
 wb.AddTable("","Table1")
    .PageNumber = page \'
设置页码
    .Primarykey = "_Identify" \'
设置主键
    .CreateFromDataTable(dt)

End
 With
With
 wb.AddButtonGroup("","btg1"False\'生成换页按钮
    If page > 0 Then
        .Add("btnFirst""
首页","","List.htm?page=0")
        .Add("btnPrev""
上一页","","List.htm?page=" & page - 1)
    Else
        .Add("btnFirst""
首页").Kind = 1
        .Add("btnPrev""
上一页").Kind = 1
    End If
    If Endrow < count Then
        .Add("btnNext""
下一页","","List.htm?page=" & page + 1)
        .Add("btnLast""
末页","","List.htm?page=" & pages - 1)
    Else
       .Add("btnNext""
下一页").Kind = 1
        .Add("btnNext""
末页").Kind = 1
    End If

End
 With
With
 wb.AddButtonGroup("","btg2"False\'生成操作按钮
    .Add("btnAdd""
增加订单").Attribute = ""
    .Add("btnEdit""
编辑订单").Attribute = ""
    .Add("btnDelete""
删除订单").Attribute = ""
End
 With
wb
.AppendHTML("<script src=\'./lib/table.js\'></script>"\'引入脚本文件
e
.WriteString(wb.Build)


--  作者:有点甜
--  发布时间:2018/1/1 22:27:00
--  

 程序和数据库在同一台电脑,直接后台查询和直接读取已经加载的数据,效率上,没有任何区别。

 

 如果确实要做,参考

 

http://www.foxtable.com/webhelp/scr/2781.htm

 

http://www.foxtable.com/mobilehelp/scr/0066.htm

 

http://www.foxtable.com/mobilehelp/scr/0072.htm

 


--  作者:WUZHAN
--  发布时间:2018/1/2 18:59:00
--  
这段代码折腾了3天了,能力有限,还是没有解决,请老师们帮忙修改一下这段代码。谢谢了。
--  作者:有点蓝
--  发布时间:2018/1/2 21:03:00
--  
datatable无法分页,只能对table分页。增加一个临时序号列,然后先循环所有行给序号列赋值好顺序。

table分页这样,比如第二页,每页10行

dim page as integer = 2
dim pc as integer = 10
tables("表A").filter = "序号 > " & (page -1) * pc & " and 序号 <= " & page  * pc

然后参考根据Foxtable中的Table自动生成网页http://www.foxtable.com/mobilehelp/scr/0067.htm