又一新的分页方法(转帖)
2004-11-19 11:43
176 查看
Repeater和DataList控件提供了一个快速、灵活的表现数据的方式,但是,它们没有内建的分页功能;DataGrid控件提供了内建的分页功能,但它的结构比较复杂。下面就用PagedDataSource类实现Repeater和DataList的分页。 PagedDataSource封装了DataGrid的分页属性,我们可以象DataGrid那样进行分页。代码如下:
<%@ Page Language="VB" %>
<%@ import Namespace =namespace="System.Data" %>
<%@ import Namespace =namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Public Sub Page_Load()Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
Dim objConn As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("../aspxWeb.mdb"))
Dim objCommand As OleDbDataAdapter = New OleDbDataAdapter ("select * from Document", objConn)
Dim ds As DataSet = New DataSet ()
objCommand.Fill(ds)
Dim objPds As PagedDataSource = New PagedDataSource ()
objPds.DataSource = ds.Tables(0).DefaultView
objPds.AllowPaging = True
objPds.PageSize = 5
Dim CurPage As Integer
If Not (Request.QueryString("Page") Is Nothing) Then
CurPage = Convert.ToInt32(Request.QueryString("Page"))
Else
CurPage = 1
End If
objPds.CurrentPageIndex = CurPage - 1
lblCurrentPage.Text = "当前页:" + CurPage.ToString()
If Not objPds.IsFirstPage Then
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1)
End If
If Not objPds.IsLastPage Then
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1)
End If
Repeater1.DataSource = objPds
Repeater1.DataBind()
End Sub
</script>
<html>
<head>
<title>Repeater控件分页的例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
P,TD,DIV,SPAN {font-size:9pt}
</style>
</head>
<body>
<form name="form1" method="POST" runat="server">
<div style="padding:5px;background-color:#dedede">
<asp:label ID="lblCurrentPage" runat="server"></asp:label></td>
<td> <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>
</div>
<hr size="1" color="#000099"/>
<asp:Repeater ID="Repeater1" runat="server">
<Itemtemplate>
<div style="padding:5px;background-color:#dedede">
<%# DataBinder.Eval(Container.DataItem, "Title") %>
</div>
</Itemtemplate>
</asp:Repeater>
</form>
</body>
</html>
真是学无止境也,解决问题的方法有好多种哟
<%@ Page Language="VB" %>
<%@ import Namespace =namespace="System.Data" %>
<%@ import Namespace =namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Public Sub Page_Load()Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
Dim objConn As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("../aspxWeb.mdb"))
Dim objCommand As OleDbDataAdapter = New OleDbDataAdapter ("select * from Document", objConn)
Dim ds As DataSet = New DataSet ()
objCommand.Fill(ds)
Dim objPds As PagedDataSource = New PagedDataSource ()
objPds.DataSource = ds.Tables(0).DefaultView
objPds.AllowPaging = True
objPds.PageSize = 5
Dim CurPage As Integer
If Not (Request.QueryString("Page") Is Nothing) Then
CurPage = Convert.ToInt32(Request.QueryString("Page"))
Else
CurPage = 1
End If
objPds.CurrentPageIndex = CurPage - 1
lblCurrentPage.Text = "当前页:" + CurPage.ToString()
If Not objPds.IsFirstPage Then
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1)
End If
If Not objPds.IsLastPage Then
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1)
End If
Repeater1.DataSource = objPds
Repeater1.DataBind()
End Sub
</script>
<html>
<head>
<title>Repeater控件分页的例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
P,TD,DIV,SPAN {font-size:9pt}
</style>
</head>
<body>
<form name="form1" method="POST" runat="server">
<div style="padding:5px;background-color:#dedede">
<asp:label ID="lblCurrentPage" runat="server"></asp:label></td>
<td> <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>
</div>
<hr size="1" color="#000099"/>
<asp:Repeater ID="Repeater1" runat="server">
<Itemtemplate>
<div style="padding:5px;background-color:#dedede">
<%# DataBinder.Eval(Container.DataItem, "Title") %>
</div>
</Itemtemplate>
</asp:Repeater>
</form>
</body>
</html>
真是学无止境也,解决问题的方法有好多种哟
相关文章推荐
- 真正重要的是能力和业绩——跨国公司的人才观
- 追女孩最好时机啊
- 工作半年感悟
- 数据库安全性策略
- 个人技术站点维护工具箱
- md5加密和使用方法
- Oracle中分区表的使用
- Redo Log Data Dictionary Views
- PHP 如何调用 JAVA 类库
- 1000句常用英语
- 计算机族必喝的茶
- Oracle数据库的备份与恢复
- 常用算法设计方法(转贴)->
- 回顾 一个简单的ER 图
- 查找递归表结构的父节点下所有子节点
- 读取文本文件
- Google推出在线翻译网页的功能(my late?)
- Blog也是有生命的~ 你不好这样草菅人命的~
- web打印的另类方法
- 2004.11.19,Fri - 郑渊洁作品全集PDF珍藏版