Foxtable(狐表)用户栏目专家坐堂 → [求助]分页显示已经加载到DataTable中的数据


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

主题:[求助]分页显示已经加载到DataTable中的数据

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


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
[求助]分页显示已经加载到DataTable中的数据  发帖心情 Post By:2018/1/1 20:13:00 [只看该作者]

在移动开发教程中的案例代码,如何修改代码可以实现分页显示已经加载到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)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
  发帖心情 Post By:2018/1/2 18:59:00 [只看该作者]

这段代码折腾了3天了,能力有限,还是没有解决,请老师们帮忙修改一下这段代码。谢谢了。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107337 积分:545952 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部