//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=;
// 显示总共页数
//
lblTotalPage.Text=Pgds.PageCount.ToString();
// 当前页
int CurrentPage;
// 请求页码为不为null设置当前页,否则为第一页
if(Request.QueryString["Page"] != null)
{ CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurrentPage = ;
}
// 当前页所引为页码-1
Pgds.CurrentPageIndex = CurrentPage - ;
// 显示当前页码
lblCurrentPage.Text = CurrentPage.ToString();
// 如果不是第一页,通过参数Page设置上一页为当前页-1,否则不显示连接
if(!Pgds.IsFirstPage)
{
// Request.CurrentExecutionFilePath为当前请求虚拟路径
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - );
}
// End If
// 如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接
if(!Pgds.IsLastPage)
{
// Request.CurrentExecutionFilePath为当前请求虚拟路径
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + );
}
// 模板绑定数据源
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=;i<;i++)
{
dr = dt.NewRow();
dr[] = i;
dr[] = "Item " + i.ToString();
dr[] = DateTime.Now.ToShortTimeString();
if(i%!=)
{
dr[] = true;
}
else
{
dr[] = 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: # } .txt { FONT-SIZE: 12px } </style>
</HEAD>
<body>
<form id="Form2" name="form1" method="post" runat="server">
<table class="txt" width="100%" border="">
<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="">
<table class="txt" width="100%" border="">
<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="">
</form>
</body>
</HTML> <%@ Page Language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="false" Inherits="comeday.Result" %> DataList同理。

Repeater分页代码的更多相关文章

  1. ASP.NET(C#) Repeater分页的实现

    ASP.NET(C#) Repeater分页的实现 第一种方式: 数据库连接代码: using System; using System.Data; using System.Configuratio ...

  2. Oracle中经典分页代码!

    在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...

  3. 纯js分页代码(简洁实用)

    纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...

  4. PHP分页初探 一个最简单的PHP分页代码实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  5. repeater 分页显示数据

    表名:ChinaStates 控件:Repeater 查询代码DA: public class ChinaStatesDA { private DataClassesDataContext Conte ...

  6. JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

    1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ...

  7. PHP分页初探 一个最简单的PHP分页代码的简单实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  8. Sql万能分页代码

    sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧 go  ----万能分页代码create procedure [dbo].[sp_datapager] @pagesize int, ...

  9. java常用公共代码二之分页代码的实现

    在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...

随机推荐

  1. javase基础复习攻略《三》

    编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...

  2. 【原创】探索Newlife X组件利器之:XCoder点滴[附下载]

    本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www.cnblogs ...

  3. Bjarne Stroustrup对C++程序员的忠告

    转自:http://blog.csdn.net/adm_qxx/archive/2007/05/20/1617488.aspx  第1章 致读者  [1] 在编写程序时,你是在为你针对某个问题的解决方 ...

  4. [c++] Basic ideas and Style Guide

    Get your own compiler: sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo ap ...

  5. 启动Genymotion时报错Failed to initialize backend EGL display

    在启动Genymotion的时候报错: video card说的是显卡,你的显卡可能不支持  OpenGL2.0,或者你装的驱动有问题. 解决办法:将驱动重新安装一下. 可直接下载一个如“驱动人生“一 ...

  6. web前端学习笔记(CSS盒子的浮动)

    在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界:而在竖直方向和兄弟元素依次排列,不能并排.使用“浮动”方式后,块级元素的表现就会有所不同.      CSS中有一个float属性 ...

  7. Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接

    <Windows Azure Platform 系列文章目录> 我们知道,Azure Virtual Network可以 1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址 ...

  8. SQL Server 存储(5/8):理解IAM 页

    在以前的文章里,我们讨论了数据页,GAM和SGAM,还有PFS页.今天我们一起来讨论下索引分配映射(Index Allocation Map:IAM)页. 在SQL Server 2005和以后的版本 ...

  9. [DBW]js获取当前时间(昨天、今天、明天)

    开发过程中某些前台页面的时间控件我们需要给默认当前时间,jquery可以轻松的帮我们实现,代码如下 1 //昨天的时间 2 var day1 = new Date(); 3 day1.setTime( ...

  10. Asp.NET——GridView绑定DataSet数据

    ---------------------------------------------