DataList,Repeater分页问题可以采用三种方式解决
来源:互联网 发布:photoshop 2016 mac版 编辑:程序博客网 时间:2024/05/21 14:51
DataList,Repeater分页问题可以采用三种方式解决:
1.采用第三方开发的控件如:ASpNetPager,用了感觉效果还不错
2.使用SqlDataAdapter.Fill(DataSet,起始记录位置,最大填充记录数,"表名")这个重载函数,好像是这个,有可能我写的有问题,一时记不清楚了
3.或者采用.NET提供的一个支持分页的类 PagedDataSource
下面是一个使用 PagedDataSource 实现对Repeater控件分页的例子
<%@ Page Language="C#" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
public void Page_Load(Object src,EventArgs e) {
OleDbConnection objConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
Server.MapPath("../aspxWeb.mdb"));
OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Document",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
</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>
1.采用第三方开发的控件如:ASpNetPager,用了感觉效果还不错
2.使用SqlDataAdapter.Fill(DataSet,起始记录位置,最大填充记录数,"表名")这个重载函数,好像是这个,有可能我写的有问题,一时记不清楚了
3.或者采用.NET提供的一个支持分页的类 PagedDataSource
下面是一个使用 PagedDataSource 实现对Repeater控件分页的例子
<%@ Page Language="C#" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
public void Page_Load(Object src,EventArgs e) {
OleDbConnection objConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
Server.MapPath("../aspxWeb.mdb"));
OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Document",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
</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>
- DataList,Repeater分页问题可以采用三种方式解决:
- DataList,Repeater分页问题可以采用三种方式解决
- DataList,Repeater分页问题可以采用三种方式解决
- repeater/DataList分页
- Datalist Repeater分页
- Datalist Repeater分页
- Datalist Repeater手写分页
- Repeater/DataList分页方法之一
- DataGrid、DataList、Repeater的分页
- Gridview ,repeater,datalist 通用分页
- Gridview ,repeater,datalist 通用分页
- DataList和Repeater数据分页
- Repeater(DataList)控件分页例子
- datalist和repeater通用分页
- DataList和Repeater数据分页
- DataList或Repeater分页方法
- 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页)
- 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页)
- 用Kernel Debugger验证Windows内存管理器的Copy-On-Write行为
- MySql常用命令
- All Aliases of PowerShell
- JS总结
- java IO(字符流)
- DataList,Repeater分页问题可以采用三种方式解决
- 旋木
- 阻止WEBBROWSER访问时遇到window.alert
- Win 2000/XP客户端登录到Win 2000域时非常慢解决
- 类的继承学习笔记
- Windows“域”和“工作组”的区别
- boost shared_ptr 使用注意点。
- PHP ADODB 1.99版手册中文翻译
- 从编程中悟出八个字