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. Hadoop 中 Eclipse 的配置

    先启动Hadoop守护进程,进入hadoop安装目录,执行bin/start-all.sh 主要是为了之后能正确测试 Ubuntu中下载安装Eclipse,执行sudo apt-get install ...

  2. 基于TCP协议的服务器(多线程)

    import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; impo ...

  3. C语言snprintf函数

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...

  4. liunx shell数字相加

    #!/bin/bash num1= num2= num3= #echo $($num1+$num2+$num3)#错误写法 echo $[$num1+$num2+$num3] echo $(($num ...

  5. Area - POJ 1265(pick定理求格点数+求多边形面积)

    题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少. 分析: 1.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其 ...

  6. Android学习(一)

    #常见布局 ###线性布局 有一个布局方向,水平或者竖直 在竖直布局下,左对齐.右对齐,水平居中生效 在水平布局下,顶部对齐.底部对齐.竖直居中生效 权重:按比例分配屏幕的剩余宽度或者高度 ###相对 ...

  7. String与常量池

    转自:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html 1. 首先String不属于8种基本数据类型,String是一个对象.因为对象的默认值是 ...

  8. Windows操作系统的历史

    30 years ago Windows was first released, see how much it has changed回顾了Windows操作系统的历史. 1985, Windows ...

  9. 23讲 URL

    这是看完23讲后的小笔记,关于URL规则.伪静态. 一.URL规则 2.此处的区分大小写,也只是对第一个字母区分,并非对整个模块名. 3.模块名复杂时,且区分大小写,此时在地址栏访问时要用" ...

  10. ios6如何处理内存,分别为前警告后

    这里有一篇文章.非常具体地说明了ios6前后是怎样处理内存警告的: 来自唐巧的技术博客:http://blog.devtang.com/blog/2013/05/18/goodbye-viewdidu ...