由于Repeater控件没有分页相关的属性,要使用System.Web.UI.WebControl中的PageDataSource类。

PageDataSource封装了DataGrid控件的分页属性

PagedDataSource 类的部分公共属性:
 AllowCustomPaging  获取或设置指示是否启用自定义分页的值。
 AllowPaging   获取或设置指示是否启用分页的值。
 Count    获取要从数据源使用的项数。
 CurrentPageIndex   获取或设置当前页的索引。
 DataSource   获取或设置数据源。
 DataSourceCount   获取数据源中的项数。
 FirstIndexInPage   获取页中的第一个索引。
 IsCustomPagingEnabled  获取一个值,该值指示是否启用自定义分页。
 IsFirstPage   获取一个值,该值指示当前页是否是首页。
 IsLastPage   获取一个值,该值指示当前页是否是最后一页。
 IsPagingEnabled   获取一个值,该值指示是否启用分页。
 IsReadOnly   获取一个值,该值指示数据源是否是只读的。
 IsSynchronized   获取一个值,该值指示是否同步对数据源的访问(线程安全)。
 PageCount   获取显示数据源中的所有项所需要的总页数。
 PageSize   获取或设置要在单页上显示的项数。
 VirtualCount   获取或设置在使用自定义分页时数据源中的实际项数。

页面代码:

<%@ Page language="c#" Codebehind="RepeaterPager.aspx.cs" AutoEventWireup="false" Inherits="CommonFunction.RepeaterCommand" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>RepeaterCommand</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <h2>Repeater控件分页例子</h2>
            <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 48px" cellSpacing="1"
                cellPadding="1" width="300" border="0">
                <TR>
                    <TD align="right">
                        <asp:label id="lblCurPage" runat="server"></asp:label>
                        <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
                        <asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink></TD>
                </TR>
                <TR>
                    <TD style="HEIGHT: 29px">
                        <HR style="WIDTH: 400px; HEIGHT: 1px" color="red" SIZE="1">
                        &nbsp;
                        <asp:Repeater id="RepeaterPage" runat="server">
                            <ItemTemplate>
                                <li>
                                    <%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")%>
                                    <%#DataBinder.Eval(Container.DataItem,"LastName")%>
                                    <%#DataBinder.Eval(Container.DataItem,"FirstName")%>
                                </li>
                            </ItemTemplate>
                        </asp:Repeater></TD>
                </TR>
            </TABLE>
        </form>
    </body>
</HTML>

后台代码:

private void Page_Load(object sender, System.EventArgs e)
        {
            //页面初试化时进行数据绑定
            if(!IsPostBack)
                RepeaterDataBind();
        }
        private void RepeaterDataBind()
        {
            //定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
            SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
            //创建数据适配器对象
            SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,TitleOfCourtesy from Employees",conn);
            //创建DataSet对象
            DataSet ds = new DataSet();        
            try
            {
                //填充数据集
                da.Fill(ds,"testTable");
                //创建分页类
                PagedDataSource objPage = new PagedDataSource();
                //设置数据源
                objPage.DataSource = ds.Tables["testTable"].DefaultView;
                //允许分页
                objPage.AllowPaging = true;
                //设置每页显示的项数
                objPage.PageSize = 5;
                //定义变量用来保存当前页索引
                int CurPage;
                //判断是否具有页面跳转的请求
                if (Request.QueryString["Page"] != null)
                    CurPage=Convert.ToInt32(Request.QueryString["Page"]);
                else
                    CurPage=1;
                //设置当前页的索引
                objPage.CurrentPageIndex = CurPage-1;
                //显示状态信息
                lblCurPage.Text = "当前页:第" + CurPage.ToString()+"页";
                //如果当前页面不是首页
                if (!objPage.IsFirstPage)
                    //定义"上一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
                    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
                //如果当前页面不是最后一页
                if (!objPage.IsLastPage)
                    //定义"下一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
                    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

//进行数据绑定
                RepeaterPage.DataSource = objPage;
                RepeaterPage.DataBind();
            }
            catch(Exception error)
            {
                Response.Write(error.ToString());
            }        
        }

转载于:https://www.cnblogs.com/suchenge/archive/2009/07/23/1529242.html

读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页相关推荐

  1. 读书笔记:《Aspx开发200问》——如果实现动态加载用户空间

    (1)创建一个名为UserControlExample.asc的用户控件 (2)创建一个UserControlTest.aspx的页面 <%@ Page language="c#&qu ...

  2. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒 文章目录 黑帽python第二版(Bl ...

  3. aspx repeater 用法_asp.net中repeater控件用法笔记

    大家可能都对 datagrid 比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater 作为我们的数据绑定控件了. repeater 控件与 datagrid ( 以及 datalis ...

  4. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

  5. Web开发中的弹出对话框控件介绍

    Web开发中,目前由于Jquery的大行其道,因此很多弹出对话框,都用到了Jquery技术,反而原始的弹出对话框的方式较为少用了.不过基于JQuery的方式实现对话框窗口弹出,也有很多控件可以利用,由 ...

  6. ArcGIS Server9.2学习开发(4)——使用Toc控件

    在<ArcGIS Server9.2学习开发(3)--使用Map控件>中讲解了有关ArcGIS Server9.2为我们提供的Map控件的基本用法,然而仅仅只有Map控件是远远不够的,还需 ...

  7. [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...

    Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...

  8. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  9. aspx repeater 用法_ASP.NET - Repeater 控件

    把 DataSet 绑定到 Repeater 控件 Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件.Repeater 控件可被绑定到数据库表.XML 文件或者其他项目列表.这里, ...

最新文章

  1. 非常抱歉,pmcaff网站硬盘故障,无法访问,努力恢复ing……
  2. 图像滤镜艺术---微软自拍APP滤镜实现合集DEMO
  3. react-native flatlist 上拉加载onEndReached方法频繁触发的问题
  4. 16岁上大学,25岁博士毕业,她还是南大医学院最年轻的博导!
  5. ASP.NET站点性能提升-缩短首页生成时间
  6. 机器学习算法一之基于K均值聚类算法实现数据聚类及二维图像像素分割
  7. 用Acrobat pro DC 自动生成pdf目录——知网硕博论文为例(附带如何下载只有caj的pdf)
  8. 安卓初学者笔记(四):用白话讲明白Activity是什么
  9. raw 图像转成fits格式图像
  10. 特别放松:海盗分金问题
  11. 第十一届蓝桥杯大赛软件类决赛(C/C++ 大学A组)
  12. 「Adobe国际认证」关于 Adobe Photoshop启动“选择并遮住”工作区
  13. 教育部中央电教馆—家庭教育指导师证书
  14. 【HTML5】Web前端——第三课:HTML5 表单相关元素和属性
  15. 对比学习+分割 | 论文阅读
  16. CMMI 3.0究竟有哪些变化?
  17. matlab 写word文档,用Matlab生成Word文档
  18. python pip 设置代理
  19. 马克斯cms有php,马克斯CMS(maxcms)
  20. java 1.8 SteamAPI认识

热门文章

  1. 2.1.3 码元、波特、速率、带宽
  2. 堆(heap)与栈(stack)的区别(二)
  3. Vivado中IP核生成文件
  4. php导出excel列数太多,php生成excel列名,超过26列大于Z问题解决办法
  5. 解决:未找到setenv命令
  6. 2019/5/12 查漏补缺
  7. 用 vue 写小程序,基于 mpvue 框架重写 weui
  8. scala 学习心得
  9. CCNP之BSCI实验6:EIGRP验证
  10. 关于可管理交换机VLAN的四种划分