ASP.NET手工分页

来源:互联网 发布:晟元数据招聘 编辑:程序博客网 时间:2024/05/16 20:29

ASP.NET手工分页

http://tech.tom.com/Archive/2002/4/4-16604.html

 

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

Response.Write ( "总共有数据记录" & nRecCount.ToString ( ) & "条" & "。<br >" )
Response.Write(" <p > <b >第一种分页显示为:</b > <p > " )

'确认当前页面的开始记录和终止记录
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" ) & " <br > " )
Next
End If
'浏览"首页"处理办法
Response.Write ( " <p >数据导航:<A HREF = """ & Script_Name & _
"?Page=" & ( 1 ).ToString ( ) & _
""">首页</A >" )
Response.Write( " &nbsp;&nbsp;&nbsp;&nbsp; " )
'浏览"上一页"处理办法
Response.Write ( " <A HREF = """ & Script_Name & _
"?Page=" & ( nPage - 1 ).ToString ( ) & _
""" >上一页</A > " )
Response.Write ( "&nbsp;&nbsp;&nbsp;&nbsp; " )
'浏览"下一页"处理办法
Response.Write ( "<A HREF =""" & Script_Name & _
"?Page=" & ( nPage + 1 ).ToString ( ) & _
""" >下一页</A > " )
Response.Write ( "&nbsp;&nbsp;&nbsp;&nbsp;" )
'浏览"尾页"处理办法
Response.Write ( "<A HREF = """ & Script_Name & _
"?Page=" & ( nPageCount ).ToString ( ) & _
""" >尾页</A > " )
'显示当前页和合计页数
Response.Write ( "&nbsp;&nbsp;&nbsp;&nbsp;" & "页次:"& nPage.ToString ( ) & "/" & nPageCount.ToString ( ) & " <br > " )
End Sub
</script >

原创粉丝点击