分页加载示例

本节的例子可以参考CaseStudy目录下的文件:分页加载.Table。

假定要求订单表分页加载,每页20行,提供第一页、上一页、下一页、最末页等加载按钮:

1、首先要确保默认不加载任何数据。

如果是内部表,设置项目事件BeforeLoadInnerTable的代码为:

If e.DataTableName = "订单" Then
   
e.Filter = "[_Identify] Is Null"
End If

如果是外部表,可以在定义外部表的时候,直接定义加载条件:

2、然后在项目事件AfterOpenProject中设置代码,使得打开项目后,自动加载第一页:

With DataTables("订单")
    .LoadFilter = ""
'一定要清除加载条件
    .LoadTop =
20
    .LoadPage =
0
    .Load()

End
With

提示:由于已经在第一步设置了加载条件"[_Identify] Is Null",所以必须在AfterOpenProject事件 中清除此条件,否则不会加载任何数据 。

3、最后设计一个下图所示的加载窗口:

各按钮的代码如下:

按钮 代码
第一页 With DataTables("订单")
    If
.LoadPage <> 0
Then
       .LoadTop =
20
       .LoadPage =
0
       .Load()

    End
If
End
With
下一页 With DataTables("订单")
   
If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .Load()
   
End If
End
With
上一页 With DataTables("订单")
   
If .LoadPage > 0 Then
        .LoadPage = .LoadPage - 1
        .Load()
   
End If
End
With
最末页 With DataTables("订单")
   
If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .TotalPages - 1
        .Load()
   
End If
End
With

提示:

上面的例子讲述了如何针对常规的表实现分页加载,本节的示例文件其实还有一个名为“窗口2”的窗口,用于演示如何针对SQLTable实现分页加载,由于本质上和上面的 例子没有什么差别,就不再重复讲述了,大家有兴趣的话可以自己看看。


本页地址:http://www.foxtable.com/webhelp/topics/2269.htm