repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果。

分页分为真分页和假分页。

真分页:控件上一页需要显示多少数据,就从数据库取出并绑定多少数据,每次换页时都需要访问数据库。

假分页:从数据库一次性取出所有数据绑定到控件上,再将所有数据根据一页显示多少条而分页。

从以上二者的概念上我们可以看出,区别在于分页时从数据库读取信息的方式,真分页的效率无疑是最高的。假分页在首次页面加载的时候会比较慢(如果数据量较多)。

二者其实各有各的优缺点,可根据需要来自行选择(比如数据量较多时,先用真分页;想减少与后台的交互,可以使用假分页)。

下面我就介绍repeater控件基于以上两种方法的分页:

无论真分页还是假分页,前台分页按钮代码都可以类似以下的方式:

<table>

<tr>

<td align="center"> 
             <asp:LinkButton ID="lbtnFirstPage" runat="server" OnClick="lbtnFirstPage_Click">页首</asp:LinkButton>
             <asp:LinkButton ID="lbtnpritPage" runat="server" OnClick="lbtnpritPage_Click">上一页</asp:LinkButton> 
             <asp:LinkButton ID="lbtnNextPage" runat="server" OnClick="lbtnNextPage_Click">下一页</asp:LinkButton>
             <asp:LinkButton ID="lbtnDownPage" runat="server" OnClick="lbtnDownPage_Click">页尾</asp:LinkButton><br />
             第<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页/共<asp:Label ID="LabCountPage" runat="server" Text="Label"></asp:Label>页

</td>

</tr>

</table>

1. 假分页

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

this.labPage.Text = "1";
             this.contrlRepeater();

}

}

//获取指字符个数的字符

public string cuts(string aa,int bb)

{

if (aa.Length <= bb)

{

return aa;

}

else

{

return aa.Substring(0, bb);

}

}

//Repeater分页控制显示方法

public void contrlRepeater()

{

DataTable dt = '连接数据库并查询'

PagedDataSource pds = new PagedDataSource();

pds.DataSource = dt.DefaultView;

pds.AllowPaging = true;

pds.PageSize = 2;

pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1;

Repeater1.DataSource = pds;

LabCountPage.Text = pds.PageCount.ToString();

labPage.Text = (pds.CurrentPageIndex + 1).ToString();

this.lbtnpritPage.Enabled = true;

this.lbtnFirstPage.Enabled = t

this.lbtnNextPage.Enabled = true;

this.lbtnDownPage.Enabled = true;

if(pds.CurrentPageIndex<1)

{

this.lbtnpritPage.Enabled = false;

this.lbtnFirstPage.Enabled = false;

}

if (pds.CurrentPageIndex == pds.PageCount-1)

{

this.lbtnNextPage.Enabled = false;

this.lbtnDownPage.Enabled = false;

}

Repeater1.DataBind();

}

protected void lbtnpritPage_Click(object sender, EventArgs e)

{

this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1);

this.contrlRepeater();

}

protected void lbtnFirstPage_Click(object sender, EventArgs e)

{

this.labPage.Text = "1";

this.contrlRepeater();

}

protected void lbtnDownPage_Click(object sender, EventArgs e)

{

this.labPage.Text =this.LabCountPage.Text;

this.contrlRepeater();

}

protected void lbtnNextPage_Click(object sender, EventArgs e)

{

this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);

this.contrlRepeater();

}

2. 真分页

真分页主要实现在于sql语句上:

select   top  每页显示的记录数 *  from  topic  where  id  not   in  ( select   top  (当前的页数-1)*每页显示的记录数 id  from  topic  order   by  id  desc )  order   by  id  desc

再查询出总记录数来计算总页数pageCount

int pageCount = (int)Math.Ceiling((double)查询出的总记录数个数/ (double)每页显示的记录数)

之后将返回的数据表直接绑定到repeater控件上,再将当前页数、总页数利用以上我给出的假分页套上就行了。

有了思路和主要代码, 相信大家自己应该能套上,我就不再重复写代码了。

转:http://blog.csdn.net/dfdj1010/article/details/5783317

repeater控件实现分页的更多相关文章

  1. Repeater控件的分页实现

    本文讲解Repeater控件与PagedDataSource相结合实现其分页功能.PagedDataSource 类封装那些允许数据源控件(如 DataGrid.GridView)执行分页操作的属性. ...

  2. Repeater控件的分页效果

    <webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign=" ...

  3. ASP.NET Repeater控件实现简单分页

    早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...

  4. Repeater控件使用(含删除,分页功能)

    Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...

  5. (转) .NET实现Repeater控件+AspNetPager控件分页

    SqlConnection (.NET C#) 连接及分页 .net的访问数据机制决定了访问大量数据时会致使客户端机器消耗大量资源,因此有必要对数据进行分页显示,开发工具vs.net+sqlserve ...

  6. repeater控件自定义Url分页带参数

    repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传 ...

  7. asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...

  8. 使用Sql分页方法给Repeater控件分页的方法

    页面代码 <div class="bookList"> <asp:Repeater ID="rpBooks" runat="serv ...

  9. 使用Repeater控件实现三层嵌套以及分页效果

    PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范  请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...

随机推荐

  1. MongDB主从复制、复制集

    主从复制比较简单,指定master.slave即可,其中master可写可读.slave只能读不能写.向master插入数据时,mongodb会自动将数据复制到slave节点.这样做的好处是读写分离, ...

  2. redis 手册

    一.概述: 在该系列的前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String.List.Set.Hashes和Sorted-Set.这些命 令都具有一个共同点,即所有的操作都是针对与 ...

  3. Android应用开发学习之Selector

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文我们来看一个通过selector动态改变ImageButton背景图片的例子,下图是该程序的运行效果: 该程序中 ...

  4. Spring实例化bean的三种方法

    1.用构造器来实例化 <bean id="hello2" class="com.hsit.hello.impl.ENhello" /> 2.使用静态 ...

  5. vojis1523 NOI2002 贪吃的九头龙

    描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落. 有一天, ...

  6. word模版另存为网页(*.htm,*.html),转为jsp页面并加入数据后导出成word

    word模版另存为网页之后,将html格式的文件转为jsp页面,在页面上加入相应的动态值,加入的值中包含图片,这个该怎么处理??另外导出的文件需要拷贝到不同的地方(无法联网)使用. <%@ pa ...

  7. servletConfig对象

    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数后,web容器在创建servlet实例对象 ...

  8. JGit与远程仓库链接使用的两种验证方式(ssh和https)

    JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...

  9. notepad++下载Subversion插件,显示intalltion of subversion failed

    notepad++安卓subversion的插件不成功,是因为我们下载TortoiseSVN客户端的版本跟subversion的版本不兼容 一.背景: 在新浪云平台上开发微信公众账号,因为要使用SVN ...

  10. 【转】关于onActivityResult方法不执行的问题汇总

    首先说说本人碰到的于onActivityResult不执行的情况.(网上找了很久都没有人碰到) 1.直接上代码说明 ActivityA的代码:(放在onCreate方法中) Intent intent ...