科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件ASP.NET处理浏览器中数据分页的方法(2)

ASP.NET处理浏览器中数据分页的方法(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ASP的数据库编程的时,把数据记录分成若干的页面,通过数据导航按钮(或者其他超链接),分页的浏览。在实现的过程中ASP.NET比起在ASP的处理过程显得条理更清晰,也更容易些。通过浏览器进行分页浏览数据记录基本类型主要有二种。

作者:IT网络学院 来源:xueit.net  2007年9月2日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

四. 第二种分页浏览数据记录的关键步骤以及实现方法:

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

Response.Write ( "  数据导航: " )

nPageEnd = nPage + 3

If nPageEnd > nPageCount

nPageEnd = nPageCount

End If

For i = 1 To nPageEnd

If i = nPage Then

Response.Write ( "  " & i.ToString ( ) & "  " )

Else

Response.Write ( "
"?Page=" & ( i ).ToString ( )  & _

""" > " & i.ToString ( ) & " " )

End If

Next



If nPageEnd < nPageCount Then

Response.Write ( "
"?Page=" & ( nPageEnd + 1 ).ToString ( ) & _

""" >更多... " )

End If

五. 第二种分页浏览数据记录的完整源程序代码(no2.aspx):

no2.aspx和no1.aspx在程序设计的思想和方法上大致相同,下面是no2.aspx的源程序,具体如下:

<% @ Page Language = "VB" %>

<% @ Import Namespace = "System.Data" %>

<% @ Import Namespace = "System.Data.OleDb" %>





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("错误信息: " & e.Message & "  " )

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 ( ) & " 条" & "。" )

Response.Write("  第二种分页显示为:  " )



'确认当前页面的开始记录和终止记录

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

End If

Response.Write ( "  数据导航: " )

nPageEnd = nPage + 3

If nPageEnd > nPageCount

nPageEnd = nPageCount

End If

For i = 1 To nPageEnd

If i = nPage Then

Response.Write ( "  " & i.ToString ( ) & "  " )

Else

Response.Write ( "
"?Page=" & ( i ).ToString ( )  & _

""" > " & i.ToString ( ) & " " )

End If

Next



If nPageEnd < nPageCount Then

Response.Write ( "
"?Page=" & ( nPageEnd + 1 ).ToString ( ) & _

""" >更多... " )

End If

End Sub

本文介绍的这二种分页浏览记录类型虽然采用的数据库都是本地数据库,但对其他类型的数据库也是一样适用的,这只需要修改一下数据连接字符串就可以实现了,譬如如果采用了SQL Server数据库。此SQL Server数据库服务器是"Server1",数据库是"Data",用户名为缺省的"sa",没有设定密码。只需要把上面二段程序中的字符串"strConn"变换成:

strConn = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = Data ; Data Source = server1 "

就可以实现了。

六. 总结:

本文介绍的二种分页浏览数据记录方法在ASP.NET数据库编程方面是非常有用的,因为在数据处理方面,分页显示记录比起其他的一些处理,譬如:数据修改、删除等都要难些。希望上面的这些内容对你利用ASP.NET开发数据库程序有所帮助。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章