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,压力一直很大.在很多问题都是不清楚 ...
随机推荐
- 树莓派3B上部署运行.net core 2程序
针对Linxu arm处理器如何部署.net core 2的资料很少,网上找到几篇但都写得不够详细,按照他们教程来撞墙了,折磨了几天终于部署成功了,先上一张运行成功的图 1.windows系统中,在项 ...
- 配置Nginx代理服务器
nginx另一个使用的比较多的情况是作为代理服务器,代理服务器接收请求,然后把请求传递到代理服务器,nginx最后会提取代理服务器的回复,并把这些回复发送给客户端.我们将配置一个基本的代理服务器,图片 ...
- Jenkins gitlab vue,angular,react 自动化构建【原】
大致思路,(本篇主要讲vue ,当然了 angular react 也是一样配置) ,转发请注明原链接,谢谢 :) 1. 服务器上面配置jenkins (安装配置,不介绍) 2.新建item 自由风格 ...
- cryptojs的使用
项目中经常会遇到加密解密的需求,这里有一个js库非常好用,就是crypto-js.下面记录一下使用方法. 首先,安装js库 npm install crypto-js --save 然后,在项目中使用 ...
- Java经典编程题50道之三十一
将一个数组逆序输出. public class Example31 { public static void main(String[] args) { int[] a = { 9 ...
- HBuilder常用快捷键
切换tab: Ctrl+Tab全部保存: Ctrl+Shift+S 激活代码助手: Alt+/显示方法参数提示: Alt+Shift+?转到定义: Ctrl+Alt+D 开启关闭注释整行: Ctrl+ ...
- JMS学习(一):初识JMS
1.为什么使用JMS(java消息中间件)java message service 为了解决一个系统对服务调用进行解耦(在一个系统需要调用多个服务的时候,需要通过中间件来进行消息进行交流) 2.AMQ ...
- struts 中的创建Action的三种方法
1.对于直接创建类,不实现接口和继承任何的类 例如创建一个helloAction package cn.lonecloud.control; import com.opensymphony.xwork ...
- Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境
0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...
- Java.lang.Comparable接口和Java.util.Comparator接口的区别
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 1.Com ...