扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
ASP的数据库编程的时,由于浏览器的大小限制,在要浏览的数据记录比较多的时候,为了达到更直观的效果,我们把这些数据记录分成若干的页面,通过数据导航按钮(或者其他超链接),分页的浏览。其实这种数据记录的分页浏览在ASP.NET也能够实现。并且在实现的过程中比起在ASP的处理过程显得条理更清晰,也更容易些。
通过浏览器进行分页浏览数据记录基本类型主要有二种。其他类型的分页浏览要么是对这二种类型的修改,要么是对这二种类型的综合。具体表现方式的如下面这二幅图:
图01:第一种分页浏览数据记录式样
图02:第二种分页浏览数据记录式样
下面就来探讨一下在ASP.NET中这二种分页浏览数据记录的具体实现过程:
首先来介绍一下我们使用的数据库,在本文中为了方便起见,我们使用了本地数据库Access 2000,数据库名称为"Data.mdb",里面存放了一张数据表"tblItem"。此数据表的结构如下:
字段名称 | 字段类型 |
ItemID | 自动编号 |
ItemName | 文本类型 |
如果你采用的是别的数据库,只需对下面介绍的程序进行简单的修改就可以了。这将在下面介绍。
一. 本文程序设计和运行的软件环境:
(1).微软公司视窗2000服务器版
(2)..Net FrameWork SDK Beta 2
二. 第一种分页浏览数据记录的关键步骤以及实现方法:
(1).首先要得到初始浏览数据记录的超链接字符串:
这其实很关键,因为在第一种分页浏览中的"首页"、"下一页"等操作,都是通过在这个超链接字符串后面加入要浏览页面的参数来实现的,在本文的程序中是通过GetPageName ( )函数来实现的。此函数具体如下:
Function GetPageName ( ) As String Dim Str As String Dim Pos As Short Str = Request.ServerVariables ( "Script_Name" ).Trim ( ) Pos = Str.LastIndexOf ( "/" ) If Pos >= 0 Then Return Str.SubString ( Pos + 1 ) Else Return Str End If End Function |
(2).要得到你所要浏览的数据记录总数:
在本文中,为了方便,我们是把数据表"tblItem"中的全部记录都拿来浏览。ASP.NET页面通过ADO.NET来得到数据表"tblItem"。下面代码就是利用ADO.NET来得到"tblItm"表中记录总数的程序代码:
<% @ Page Language = "VB" %> <% @ Import Namespace = "System.Data" %> <% @ Import Namespace = "System.Data.OleDb" %> |
(3).计算出浏览的数据记录总共页面数:
在浏览页面中,我们发现了每一页只浏览5条记录,你可以通过修改程序中定义一个常量"Record_Per_Page"来改变每一页浏览数据记录的个数。在知道了要浏览数据记录的总数后,通过下面代码来计算出要显示这些数据记录所需要的页面总数:
Const Record_Per_Page As Short = 5 '定义每一页显示的记录数 Dim nPageCount As Integer '保存总共的数据页面数目 Dim nPage As Integer '存放要浏览当前数据页面号 nPageCount = nRecCount Record_Per_Page If nRecCount Mod Record_Per_Page > 0 Then nPageCount += 1 End If '确认浏览命令中的页面参数是否越界,如果越界则重置页面序号 If nPage < 1 Then nPage = 1 End If If nPage > nPageCount Then nPage = nPageCount End If |
(4).数据导航的实现方法:
其实数据导航是通过对参数"Page"赋值来实现的,其中程序中的"nPage"是当前数据页面序号, "nPageCount"是数据页面的总和。下面是实现这些数据导航的具体实现代码:
Response.Write ( " 数据导航: |
(5).显示不同页面的数据记录:
根据超链接字符串得到"Page"值,然后根据此值来得到在此页面中要显示的起始记录号和结束记录号,再通过一个循环把这些记录给显示出来。下面这行代码是读取参数"Page":
nPage = Convert.ToInt32 ( Request.QueryString ( "Page" ) ) |
下面这些代码是根据用户想要去的页面得到起始记录号和结尾记录号,并通过屏幕显示出来:
Dim nStart As Integer '存放当前页面的起始记录序号 Dim nEnd As Integer '存放当前页面的终止记录序号 Dim i As Integer nStart = Record_Per_Page * ( nPage - 1 ) nEnd = nStart + Record_Per_Page - 1 If nEnd > nRecCount - 1 Then nEnd = nRecCount - 1 End If '在屏幕中输出记录 For i = nStart To nEnd Response.Write ( DT.Rows ( i ) ( "ItemName" ) & " " ) Next |
三. 第一种分页浏览数据记录的完整程序代码(no1.aspx):
组织一下上面的这些步骤的实现方法,可以得到下列完整代码:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者