Repeater控件的分页实现_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Repeater控件的分页实现

Repeater控件的分页实现

 2014/12/4 10:05:27  Ranran  程序员俱乐部  我要评论(0)
  • 摘要:本文讲解Repeater控件与PagedDataSource相结合实现其分页功能。PagedDataSource类封装那些允许数据源控件(如DataGrid、GridView)执行分页操作的属性。如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类。PagedDataSource类的部分公共属性:AllowCustomPaging//获取或设置指示是否启用自定义分页的值。AllowPaging//获取或设置指示是否启用分页的值。Count//获取要从数据源使用的项数
  • 标签:Repeater 实现 控件

class="FocusMe">本文讲解Repeater控件与PagedDataSource相结合实现其分页功能。PagedDataSource 类封装那些允许数据源控件(如 DataGrid、GridView)执行分页操作的属性。如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类。

PagedDataSource 类的部分公共属性:

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

下面是PagedDataSource类实现Repeater控件的分页显示例子,如图:

本例使用vs.net 2008(C#)编写。后台.CS代码。来自 admin10000.com

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 protected void Page_Load(object sender, EventArgs e) {     if (!Page.IsPostBack)     {          int pageIndex = 1;          try          {               pageIndex = Convert.ToInt32(Request.QueryString["Page"]);               if (pageIndex <= 0) pageIndex = 1;          }          catch          {               pageIndex = 1;          }          DataTable dt = GetDocumentTable();          PagedDataSource pds = new PagedDataSource();          pds.DataSource = dt.DefaultView; // 设置数据源          pds.AllowPaging = true; // 设置指示是否启用分页的值          pds.PageSize = 5; // 设置要在每页显示的数量          pds.CurrentPageIndex = pageIndex - 1; // 设置当前页的索引。          rptDocumentList.DataSource = pds;          rptDocumentList.DataBind();          ltlPageBar.Text = GetPageBar(pds);     } }   // 分页条 private string GetPageBar(PagedDataSource pds) {     string pageBar = string.Empty;     int currentPageIndex = pds.CurrentPageIndex + 1;     if (currentPageIndex == 1)     {           pageBar += "<a href=\"javascript:void(0)\">首页</a>";     }     else     {           pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=1\">首页</a>";     }     if ((currentPageIndex - 1) < 1)     {           pageBar += "<a href=\"javascript:void(0)\">上一页</a>";     }     else     {           pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex - 1) + "\">上一页</a>";     }     if ((currentPageIndex + 1) > pds.PageCount)     {           pageBar += "<a href=\"javascript:void(0)\">下一页</a>";     }     else     {           pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex + 1) + "\">下一页</a>";     }     if (currentPageIndex == pds.PageCount)     {           pageBar += "<a href=\"javascript:void(0)\">末页</a>";     }     else     {           pageBar += "<a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + pds.PageCount + "\">末页</a>";     }     return pageBar; }   // 创建测试表 DataTable GetDocumentTable() {     DataTable dt = new DataTable();     dt.Columns.Add("DocumentId", typeof(int));     dt.Columns.Add("Title", typeof(string));     for (int i = 1; i <= 30; i++)     {          DataRow row = dt.NewRow();          row["DocumentId"] = i;          row["Title"] = "文档标题 " + i + "";          dt.Rows.Add(row);     }     return dt; }

前台.aspx代码

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <form id="form1" runat="server">     <div>         <asp:Repeater ID="rptDocumentList" runat="server">             <HeaderTemplate>                 <ul>             </HeaderTemplate>             <ItemTemplate>                 <li>                     <%# DataBinder.Eval(Container.DataItem, "Title")%></li>             </ItemTemplate>             <FooterTemplate>                 </ul>             </FooterTemplate>         </asp:Repeater>     </div>     <div class="pageBar">         <asp:Literal ID="ltlPageBar" runat="server"></asp:Literal>     </div> </form>

 

下载代码示例: PageDemo.RAR

上一篇: dbf 工程模式连接(vfp c# ) 下一篇: 没有下一篇了!
发表评论
用户名: 匿名