我在我的项目中使用ASP / VB脚本但是,我对经典ASP中的分页不太了解。我使用表和循环设计了数据网格格式。通过访问数据库来填充该表。由于我们需要显示大量数据,因此我们需要分页。
提前致谢
答案 0 :(得分:1)
分页问题本质上不是ASP classic或VBScript。您首先需要定义要遵循的策略:
答案 1 :(得分:1)
你需要注意一个问题......内置的ASP记录集将允许pagiing,但效率不高。整个结果集返回到浏览器,然后找到相应的页面并显示该数据。
想想这样......你的结果集是一个4书架的书柜。当你要求第一页时,所有4本书都会被退回。显示代码显示“现在只显示第1页”。如果你然后要求第二页...所有四个书架都会被退回,然后显示代码显示“好的给我第4页”。
因此,您应该在数据库内部查找发生在服务器上的分页解决方案。这样,如果您要求50页结果的第15页,数据库将只返回一个书架。
这google query应该让你走上正轨。
以下是proc中发生的事情的基本概念:
第1步:
创建一个存储整个结果集的临时表。我的偏好是只在此临时表中存储两个值。称为RowId的标识种子值和结果数据的主键。 (我是那些相信非感性身份种子密钥的人之一)
第2步:
将select语句中的所有PKey值插入临时表
第3步:
根据输入页面参数确定StartRowId和EndRowId。
第4步:
使用内部联接从临时表中选择PKey上的数据表。在where子句中限制结果,因此RowId(临时表)位于StartRowId和EndRowId之间。确保按RowId排序。
答案 2 :(得分:0)
设置页面大小
recordset.PageSize = 100 ' number of records per page
设置当前页面
recordset.AbsolutePage = nPage ' nPage being the page you want to jump to.
其他有用的内容:
recordset.RecordCount ' number of records returned
recordset.PageCount ' number of pages based on PageSize and RecordCount
这是基本信息。您仍然需要遍历适当数量的记录,并在传回页面时检查页码。