ASP.NET WebForm 通过 PagedDataSource 实现 Repeater 的分页
1.效果图&代码说明
1.效果图

2.代码说明
1.翻页按钮
2.PagedDataSource
2.Code
1.front end
<asp:Repeater ID="RptrReview" runat="server" OnItemCommand="RptrReview_ItemCommand" OnItemDataBound="RptrReview_ItemDataBound" >
......
</asp:Repeater>
<ul class="pager">
<li class="previous"><asp:LinkButton ID="LnkBtnPrevious" runat="server" OnCommand="RepeaterPageChange_Command" CommandName="Previous" CommandArgument="-1" >← 上一页</asp:LinkButton></li>
<asp:Label ID="LblPageIndex" runat="server" Text="1" style="color:#428BCA;font-size:24px;"></asp:Label>
<li class="next"><asp:LinkButton ID="LnkBtnNext" runat="server" OnCommand="RepeaterPageChange_Command" CommandName="Next" CommandArgument="1">下一页 →</asp:LinkButton></li>
</ul>
2.code-behind
protected void RepeaterPageChange_Command(object sender, CommandEventArgs e)
{
PagedDataSource pds = new PagedDataSource();
pds.DataSource=GetReviewDV();// 将DataView绑定到PagedDataSource上
pds.AllowPaging = true; // 设置指示是否启用分页的值
pds.PageSize = ; // 设置要在每页显示的数量
int pageIndex=Convert.ToInt32(LblPageIndex.Text.ToString())-;
pds.CurrentPageIndex = pageIndex;//获取 PagedDataSource当前页码
if (e.CommandName=="Next"&&pds.IsLastPage)//已经是末页,还向下翻页的情况,跳过
{
RptrReview.DataSource = pds;
RptrReview.DataBind();
}
else if (e.CommandName == "Previous"&&pds.IsFirstPage)//已经是首页,还向上翻页的情况,跳过
{
RptrReview.DataSource = pds;
RptrReview.DataBind();
}
else//通过 e.CommandArgument 修改 PagedDataSource 页码
{
pageIndex = pageIndex + Convert.ToInt32(e.CommandArgument);
LblPageIndex.Text = (pageIndex + ).ToString();
pds.CurrentPageIndex = pageIndex; // 设置当前页的索引。
RptrReview.DataSource = pds;
RptrReview.DataBind();
}
}
3.兼容版
/// <summary>
/// 绑定RptrReview的第pageIndex页
/// </summary>
/// <param name="pageIndex"></param>
protected void BindRptrReview(ref int pageIndex)
{
PagedDataSource pds = new PagedDataSource();
pds.DataSource = GetReviewDV();
pds.AllowPaging = true; // 设置指示是否启用分页的值
pds.PageSize = ; // 设置要在每页显示的数量
//处理pageIndex极端情况
if(pageIndex<)
{
pageIndex=;
}
else if(pageIndex>(pds.PageCount-))
{
pageIndex=pds.PageCount-;
}
pds.CurrentPageIndex = pageIndex; // 设置当前页的索引。
RptrReview.DataSource = pds;
RptrReview.DataBind(); }
protected void RepeaterPageChange_Command(object sender, CommandEventArgs e)
{
int pageIndex = Convert.ToInt32(LblPageIndex.Text.ToString()) - ;
pageIndex = pageIndex + Convert.ToInt32(e.CommandArgument);
BindRptrReview(ref pageIndex);
LblPageIndex.Text = (pageIndex + ).ToString();
}
3.Reference
ASP.NET WebForm 通过 PagedDataSource 实现 Repeater 的分页的更多相关文章
- ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...
- ASP.Net WebForm学习笔记:一、aspx与服务器控件探秘
作者:周旭龙 出处:http://edisonchou.cnblogs.com 开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便 ...
- ASP.NET WebForm
ASP.NET WEBFORM Aspx aspx文件(新建项→Web窗体) .在aspx中可以使用<%=表达式%>的方式在页面的当前位置输出表达式(表达式至少要用protected级别, ...
- 【转载】ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...
- 一、ASP.NET MVC 路由(一)--- ASP.NET WebForm路由模拟
ASP.NET WebForm 应用,用户请求的是物理文件,其中包括静态页面和动态页面,在Url中的显示都是服务器中一个物理文件的相对路径.但是ASP.NET MVC就不同了,用户请求的是Contro ...
- (转)教你记住ASP.NET WebForm页面的生命周期
对于ASP.NET Webform的开发者,理解ASP.NET Webform的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特定的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供 ...
- 【深入ASP.NET原理系列】--Asp.Net Mvc和Asp.Net WebForm共用一套ASP.NET请求管道
.NET FrameWork4在系统全局配置文件(如在如下目录中C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config) 中添加了一个名字叫Url ...
- 性能工具MiniProfiler在Asp.Net WebForm跟踪EntityFramework
http://www.xuebuyuan.com/356638.html 选择MiniProfiler.EF 默认会把MiniProfiler安装上,笔者程序是Asp.Net WebForm 不需要安 ...
- 解析ASP.NET WebForm和Mvc开发的区别
因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚 ...
随机推荐
- AWS-SS配置过程
为满足家长要求,以下只录步骤: 远端: 1. 注册并启动一个AWS实例.这一步网上N多教程,搜 AWS EC2 等均可. 2. 远程安装SS,并写配置文件.依然网搜, AWS S(hadow)S(oc ...
- 微信小程序页面跳转的问题(app.json中设置tarBar后wx.redirectTo和wx.navigateTo均不能实现跳转到指定的页面)
1.设置的tabBar代码片段: "tabBar": { "list": [ { "pagePath": "pages/homep ...
- 自兴人工智能------------python入门基础(2)列表和元祖
一.通用序列操作: 列表中所有序列都可以进行特定的操作,包括索引(indexing).分片(slicing).序列相加(adding).乘法,成员资格,长度,最小值,最大值,下面会一一介绍这些操作法. ...
- 集合的综合练习:Poker牌
/* 刘意教程示例:*/ package cn.onecool.cot; import java.util.ArrayList; import java.util.Collections; impor ...
- win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
操作系统:Microsoft Windows 7 旗舰版(32位) 数据库版本:SQL Server 2005 简体中文开发板 数据库下载链接: https://pan.baidu.com/s/1cq ...
- Java经典编程题50道之十三
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? public class Example13 { public static void main(St ...
- $.ajax的一些坑啊
1.如果发送ajax返回的数据为json务必设置其 Content-Type:application/json;charset=UTF-8 不然会导致其success:function(data)中的 ...
- jsz中的作用域与上下文
var x=10; function fun() { console.log(x);//10 } function demo(f) { if(f instanceof Function){ fun() ...
- 史上最全的FTP网址
无帐号密码的为匿名登录 ftp://202.114.1.121 ftp://202.114.10.199 ftp://warez:cn.ftp@202.114.12.174 ftp://Music2: ...
- HDU - 1495 bfs [kuangbin带你飞]专题一
模拟倒水的过程,每次可以把第i个杯子的水向第j个杯子里面倒,这可能出现新的状态,不停的更新状态,指导某两个杯子的水等于S/2说明找到答案,如果所有状态搜索完毕仍然不能均分,则退出. 注意:如果S是奇数 ...