四. 第二种分页浏览数据记录的关键步骤以及实现方法: 其实这二种分页方法在程序设计中是大同小异的,在第二种方法中,其前面的关键步骤中和第一种分页几乎相同,也是要得到浏览数据记录的总数,设定每一页要显示的数据记录个数,计算出总共有多少数据页面等等。这些步骤的实现方法可以参考第一种方法。第二种分页方法和第一种分页方法的主要区别在于数据导航的实现方法上。下列代码功能是实现第二种分页方法数据导航:
Response.Write ( ' <p > 数据导航: ' )
nPageEnd = nPage + 3
If nPageEnd > nPageCount
nPageEnd = nPageCount
End If
For i = 1 To nPageEnd
If i = nPage Then
Response.Write ( ' <b > ' & i.ToString ( ) & ' </b > ' )
Else
Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
'?Page=' & ( i ).ToString ( ) & _
''' > ' & i.ToString ( ) & '</A > ' )
End If
Next
If nPageEnd < nPageCount Then
Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
'?Page=' & ( nPageEnd + 1 ).ToString ( ) & _
''' >更多...</A > ' )
End If
五. 第二种分页浏览数据记录的完整源程序代码(no2.aspx):
no2.aspx和no1.aspx在程序设计的思想和方法上大致相同,下面是no2.aspx的源程序,具体如下:
<% @ Page Language = 'VB' %>
<% @ Import Namespace = 'System.Data' %>
<% @ Import Namespace = 'System.Data.OleDb' %>
<script runat = 'server' >
Const Record_Per_Page As Short = 5 '定义每一页显示的记录数
Private Script_Name As String
Sub Page_Load ( Source As Object , e As EventArgs )
Script_Name = GetPageName ( )
'第二种方式来分页显示数据
ShowRecords ( )
End Sub
'得到起始浏览超链接字符串
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
Private Sub ShowRecords ( )
Dim strConn As String '定义数据连接字符串
Dim SQL As String '定义SQL语句
Dim odConn As OleDbConnection
Dim odAdapt As OleDbDataAdapter
Dim DS As DataSet '创建DataSet对象
Dim DT As DataTable '创建DataTable对象
Dim nRecCount As Integer '保存记录总数
Dim nPageCount As Integer '保存总共的数据页面数目
Dim nPage As Integer '存放要浏览当前数据页面号
Dim nStart As Integer '存放当前页面的起始记录序号
Dim nEnd As Integer '存放当前页面的终止记录序号
Dim nPageEnd As Integer '存储当前页面的最后一面的序号
Dim i As Integer
'确认要浏览的页面序号
nPage = Convert.ToInt32 ( Request.QueryString ( 'Page' ) )
SQL = 'SELECT * FROM tblItem '
'创建数据连接字符串
strConn = ' Provider = Microsoft.Jet.OLEDB.4.0 ; ' & _
' Data Source = ' & Server.MapPath ( 'data.mdb' ) & ' ; ' & _
' User ID = ; Password = ; '
Try
'得到数据记录总数
odConn = New OleDbConnection ( strConn )
odAdapt = New OleDbDataAdapter ( SQL , odConn )
DS = New DataSet
odAdapt.Fill ( DS )
DT = DS.Tables ( 0 )
nRecCount = DT.Rows.Count
Catch e As Exception
Response.Write('错误信息: <b >' & e.Message & '</b > <p > ' )
nRecCount = 0
End Try
If nRecCount > 0 Then
' 确定数据记录要显示的页面数