日期:2009-12-03  浏览次数:20456 次

四. 第二种分页浏览数据记录的关键步骤以及实现方法: 其实这二种分页方法在程序设计中是大同小异的,在第二种方法中,其前面的关键步骤中和第一种分页几乎相同,也是要得到浏览数据记录的总数,设定每一页要显示的数据记录个数,计算出总共有多少数据页面等等。这些步骤的实现方法可以参考第一种方法。第二种分页方法和第一种分页方法的主要区别在于数据导航的实现方法上。下列代码功能是实现第二种分页方法数据导航:  

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
  ' 确定数据记录要显示的页面数