//ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间,我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式!
//.可惜的是它们不像Datagrid那样,有内置的分页功能。
//
//如何解决呢?
//
//其实我们可以用【PagedDataSource】 类来解决分页的问题。
//
//PagedDataSource类的属性:
//
//
//DataSource -数据源
//
//AllowPaging - true 是否允许分页.
//PageSize - 每页项目数量
//PageCount - 总页数
//
//CurrentPageIndex - 当前所在的页索引
//以Repeater为例 代码如下:
==========================================================================
//Result.aspx.cs 文件
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace comeday
{
 /// <summary>
 /// Result 的摘要说明。
 /// </summary>
 public class Result : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.HyperLink lnkPrev;
  protected System.Web.UI.WebControls.HyperLink lnkNext;
  protected System.Web.UI.WebControls.Label lblCurrentPage;
  protected System.Web.UI.WebControls.Label lblTotalPage;
  protected System.Web.UI.WebControls.Repeater Repeater1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
//   数据源
   PagedDataSource Pgds=new PagedDataSource();
//       
   Pgds.DataSource=CreateDataSource().DefaultView;
//        设置允许分页
   Pgds.AllowPaging=true;
//        每页显示为6行
   Pgds.PageSize=6;
//        显示总共页数
//
   lblTotalPage.Text=Pgds.PageCount.ToString();
//        当前页
   int CurrentPage;
//        请求页码为不为null设置当前页,否则为第一页
   if(Request.QueryString["Page"] != null)
   {
    
    CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
   }
else
   {
CurrentPage = 1;
   }
//   当前页所引为页码-1
   Pgds.CurrentPageIndex = CurrentPage - 1;
//   显示当前页码
   lblCurrentPage.Text = CurrentPage.ToString();
//   如果不是第一页,通过参数Page设置上一页为当前页-1,否则不显示连接
   if(!Pgds.IsFirstPage)
   {
    //            Request.CurrentExecutionFilePath为当前请求虚拟路径
    lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - 1);
   }
//        End If
//   如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接
   if(!Pgds.IsLastPage)
   {
//    Request.CurrentExecutionFilePath为当前请求虚拟路径
    lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + 1);
   }
//   模板绑定数据源  
   Repeater1.DataSource = Pgds;
   Repeater1.DataBind();
}
  /// <summary>
  /// 生成数据源(一个Datatable)
  /// </summary>
  /// <returns></returns>
public DataTable CreateDataSource()
{
  DataTable dt;
  DataRow dr;
  dt=new DataTable();
 //添加列
        dt.Columns.Add(new DataColumn("IntegerValue", System.Type.GetType("System.Int32")));
        dt.Columns.Add(new DataColumn("StringValue", System.Type.GetType("System.String")));
        dt.Columns.Add(new DataColumn("DateTimeValue", System.Type.GetType("System.DateTime")));
        dt.Columns.Add(new DataColumn("BoolValue", System.Type.GetType("System.Boolean")));
 //填充数据
 for( int i=0;i<50;i++)
 {
  dr = dt.NewRow();
  dr[0] = i;
  dr[1] = "Item " + i.ToString();
  dr[2] = DateTime.Now.ToShortTimeString();
  if(i%2!=0)
  {
   dr[3] = true;
  }
  else
  {
   dr[3] = false;
  }
  dt.Rows.Add(dr);
 }
 return dt;
}
  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);
}
  #endregion
 }
}
===========================================================================
Result.aspx文件
//<%@ Page Language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="false" Inherits="comeday.Result" %>
//<%@ import Namespace="System.Data" %>
//<HTML>
//<HEAD>
//<title>DataRepeater</title>
//<style type="text/css">
//
//BODY
//{
// FONT: 10px Verdana, Arial, Helvetica, "sans serif"; COLOR: #000000 }
//
//.txt { FONT-SIZE: 12px }
//
//</style>
//</HEAD>
//<body>
//<form id="Form2" name="form1" method="post" runat="server">
//<table class="txt" width="100%" border="0">
//     <tbody>
//     <tr>
//     <td>
//     <asp:hyperlink id="lnkPrev" runat="server">上页</asp:hyperlink>
//     <asp:hyperlink id="lnkNext" runat="server">下页</asp:hyperlink>第
//                   <asp:label id="lblCurrentPage" runat="server"></asp:label>
//     页 共
//      <asp:label id="lblTotalPage" runat="server"></asp:label>页
//                     </td>
//     </tr>
//     </tbody>
//     </table>
//     <asp:repeater id="Repeater1" runat="server">
//     <ItemTemplate>
//     <hr align="left" width="60%" size="1">
//     <table class="txt" width="100%" border="0">
//       <tr>
//       <td>
//       Order Date:
//       <%# DataBinder.Eval(Container.DataItem, "DateTimeValue", "{0:d}") %>
//       </td>
//       <tr>
//       <td>
//       Quantity:
//       <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:N2}") %>
//       </td>
//       <tr>
//       <td>
//       Item:
//       <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
//       </td>
//       <tr>
//       <td>
//       Order Date:
//       <asp:checkbox id=chk1 checked='<%# DataBinder.Eval(Container.DataItem, "BoolValue") %>' runat="server"/>
//       </td>
//       </tr>
//       </table>
//       </ItemTemplate>
//       </asp:repeater>
//       <hr hight="1">
//         </form>
//         </body>
//         </HTML>
DataList同理。

转载于:https://blog.51cto.com/45518862/44056

DataList和Repeater分页相关推荐

  1. Scott Mitchell 的ASP.NET 2.0数据教程之四十四::DataList和Repeater数据分页

    原文 | 下载本教程中的编码例子 | 下载本教程的PDF版 导言 分页和排序是显示数据时经常用到的功能.比如,在一个在线书店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条 ...

  2. DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  3. Datalist Repeater分页

    不同与GridView ListView支持分页(Gridview ListView还允许用户编辑.删除数据以及排序,ListView还支持插入数据.listview可参考以前我所写的文章),Data ...

  4. 使用PagedDataSource类实现DataList和Repeater控件的分页显示

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  5. 在 DataList 或 Repeater 控件中分页报表数据44

    简介 在在线应用程序中显示数据时,分页和排序是两个非常常见的功能.例如,在一个在线书店搜寻 ASP.NET 书籍时,可能会有数以百计种这样的图书,但在报表的每页只列出十个匹配的搜索结果.而且,搜索结果 ...

  6. Repeater分页代码

    //ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间,我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式! //.可惜的是 ...

  7. 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论

    作者:Scott Mitchell [概述] WEB开发自从有了基于脚本的WEB编程技术(如ASP)以来,经历了一个漫长的过程.通过使用微软的ASP.Net技术,传统的ASP中大量的.单调乏味的.重复 ...

  8. Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序(三)

    第七步: 在自定义分页的Repeater 里添加排序功能 现在已经完成了自定义分页,我们再来添加排序功能.ProductsBLL类的GetProductsPagedAndSorted方法和GetPro ...

  9. Repeater分页

    //ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间,我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式! //.可惜的是 ...

最新文章

  1. Android笔记(adb命令--reboot loader)
  2. Coggle加速计划:解决数据下载烦恼!
  3. 预测|麦肯锡预测2030年:1亿中国人面临职业转换,全球8亿人被机器人取代
  4. php输出数据安行,PHP对文本数据库的基本操作方法
  5. [spring] spring 装配Bean
  6. linux复盘:构架搭建lamp(安装)
  7. Android中BindService方式使用的理解
  8. Ubuntu apt-get 卸载命令
  9. python中的魔术方法
  10. Ubuntu系统安装vmwaretools时the path is not a valid path to the 3.13
  11. 代码编辑器VS Code的“Chromium”版来啦:安全、开源、保护你的隐私
  12. 非极大值抑制(Non-Maximum Suppression,NMS)(转)
  13. apulSoft apUnmask for mac(音频放大组件)
  14. 搭建测试环境如何配置软件,软件测试环境的搭建(Windows版)
  15. Unity Editor 查找资源依赖、反向查找资源依赖Dependencies
  16. vscode生成html5快捷键,vscode快捷键
  17. Found existing installation:xxxx
  18. 对arr与arr的理解
  19. 手机拍照打卡活动制作方案,通过拍照不聚集活动,函数参数(Function parameters)是在函数定义中所列的名称。
  20. 网易游戏实习电话面试

热门文章

  1. tapable 创建钩子
  2. san mysql,高性能MySQL:SAN和NAS
  3. 540.有序数组中的单一元素
  4. linux僵尸进程理解,聊聊Linux系统中的僵尸进程
  5. access两位小数不进位_人教版小学数学三年级下册笔算乘法(不进位)公开课优质课课件教案视频...
  6. java web简单线上游戏_有什么在线的编程游戏?
  7. 20190829:(leetcode习题)环形链表
  8. 在线解压rar_解压指南!新手必看
  9. 平衡小车之家_人教版高中物理必修一 专题 共点力作用下的动态平衡 公开课优质课课件教案视频...
  10. 520礼包 | 情感分析算法从原理到PaddlePaddle实战全解