Asp.net提供了三个功能强大的列表控件:GridView、DataList和Repeater控件,相对GridView,DataList和Repeater控件具有更高的样式自定义性,很多时候我们喜欢使用DataList或Repeater控件来显示数据,但是Repeater和DataList没有分页功能,有时很不方便。
    PagedDataSource类封装了GridView控件的属性,从而使GridView控件可以执行分页,它就是一个数据的容器,我们先把数据从数据库中读取出来放在这个容器中,然后设置容器的属性取出当前要显示的页上的部分数据,然后将此部分数据再绑定到页面上的显示控件上。

下面实例是用PagedDataSource类实现DataList控件的数据分页

页面后台代码

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data; using System.Data.SqlClient; public partial class Demo : System.Web.UI.Page { protected SqlConnection conn; //添加数据库的操作对象 protected SqlDataAdapter da; protected DataSet ds; protected SqlCommand comm; protected void Page_Load(object sender, EventArgs e) { getArticle(); } private void getArticle() //取得Article数据 { conn = new SqlConnection("server=127.0.0.1;database=ObtainEmployment;user id=sa;password=;");//取连接字符串,建立连接 da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand("SELECT top 50 * FROM db_Article where checkup='1' ORDER BY intime DESC ", conn); ds = new DataSet(); try { conn.Open(); da.Fill(ds, "Article"); conn.Close(); } catch (SqlException e1) { Response.Write(e1.ToString()); } int cup = Convert.ToInt32(this.lb_CurrentPage.Text); //当前页数,初始化为地1页 PagedDataSource ps = new PagedDataSource(); ps.DataSource = ds.Tables["Article"].DefaultView; ps.AllowPaging = true; ps.PageSize = 6; //每页显示的数据的行数 ps.CurrentPageIndex = cup - 1; lb_count.Text = ps.DataSourceCount.ToString(); //获取记录总数 lb_page.Text = ps.PageCount.ToString(); //获取总页数 if (!IsPostBack) { for (int i = 1; i < ps.PageCount + 1; i++) { this.DropDownList1.Items.Add(i.ToString()); } LinkUp.Enabled = true; LinkDown.Enabled = true; } try { DropDownList1.SelectedItem.Text = cup.ToString(); DataList1.DataSource = ps; DataList1.DataBind(); } catch (Exception ex) { throw ex; } } protected void LinkDown_Click(object sender, EventArgs e) //下一页按钮代码 { try { lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) + 1); DropDownList1.SelectedValue = lb_CurrentPage.Text; getArticle(); } catch (Exception ex) { Response.Write("<mce:script language=javascript><!-- " + "alert(/"已经是最后一页/")" + " // --></mce:script>"); lb_CurrentPage.Text = "1"; getArticle(); } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) //跳转到指定页代码 { int page =Convert.ToInt16((DropDownList1.SelectedItem.Value)); lb_CurrentPage.Text = page.ToString(); getArticle(); } protected void LinkUp_Click(object sender, EventArgs e) //上一页按钮代码 { try { if (Convert.ToInt16(lb_CurrentPage.Text) > 1) { lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) - 1); DropDownList1.SelectedValue = lb_CurrentPage.Text; getArticle(); } else { Response.Write("<mce:script language=javascript><!-- " + "alert(/"已经是第一页/")" + " // --></mce:script>"); } } catch (Exception ex) { Response.Write("<mce:script language=javascript><!-- " + "alert(/"已经是第一页/")" + " // --></mce:script>"); } } protected void LinkFirst_Click(object sender, EventArgs e) //跳到第一页代码 { if (lb_CurrentPage.Text != "1") lb_CurrentPage.Text = "1"; else { Response.Write("<mce:script language=javascript><!-- " + "alert(/"已经是第一页/")" + " // --></mce:script>"); } getArticle(); } protected void LinkLast_Click(object sender, EventArgs e) //跳到最后一页代码 { if (lb_CurrentPage.Text.ToString() !=lb_page.Text.ToString()) lb_CurrentPage.Text = lb_page.Text.ToString(); else { Response.Write("<mce:script language=javascript><!-- " + "alert(/"已经是最后一页/")" + " // --></mce:script>"); } getArticle(); } }

页面前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Demo.aspx.cs" Inherits="Demo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DataList ID="DataList1" runat="server"> <ItemTemplate> <asp:Label ID="lbNwes" runat="server" Text='<%#Eval("title")%>'></asp:Label> <asp:Label ID="lbTime" runat="server" Text='<%#Eval("intime")%>'></asp:Label> </ItemTemplate> </asp:DataList></div> <br /> 共<asp:Label ID="lb_count" runat="server" Text="Label"></asp:Label>条记录 共<asp:Label ID="lb_page" runat="server" Text="Label"></asp:Label>页   当前第<asp:Label ID="lb_CurrentPage" runat="server" Text="1"></asp:Label>页    <asp:LinkButton ID="LinkFirst" runat="server" OnClick="LinkFirst_Click">第一页</asp:LinkButton> <asp:LinkButton ID="LinkUp" runat="server" OnClick="LinkUp_Click">上一页</asp:LinkButton> <asp:LinkButton ID="LinkDown" runat="server" OnClick="LinkDown_Click">下一页</asp:LinkButton> <asp:LinkButton ID="LinkLast" runat="server" OnClick="LinkLast_Click">最后一页</asp:LinkButton> 转到第<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True"> </asp:DropDownList>页 </form> </body> </html>

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

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xqf003/archive/2008/10/25/3142040.aspx

使用PagedDataSource类实现分页相关推荐

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

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

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

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

  3. phppage类封装分页功能_封装page分页类

    类: //分页工具类 class Page{ /* * 获取分页字符串 * @param1 string $uri,分页要请求的脚本url * @param3 int $counts,总记录数 * @ ...

  4. 简单实用的php分页类(多种分页方式)

    为什么80%的码农都做不了架构师?>>>    1.php分页类 <?php /** * php分页类代码 * http://www.jbxue.com */ class Su ...

  5. C【C#公共帮助类】分页逻辑处理类

    using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Commo ...

  6. java mysql jsp分页_JSP+MYSQL+Java类优化分页的实例

    在JSP中经常要用到查询数据库中的数据,同常我们的做法是使用SQL语句"select * from tablename order by id desc",这样的做法有一个缺点,当 ...

  7. php smarty 分页类,Smarty分页类Smartypaginate

    不罗嗦了,直接上范例 function.paginate_first.php.function.paginate_last.php.function.paginate_prev.php.functio ...

  8. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

  9. phppage类封装分页功能_php显示页码分页类的封装

    本文实例为大家分享了php封装显示页码的分页类,供大家参考,具体内容如下 一.代码 conn.php class Mysql{ public function __construct(){ $this ...

最新文章

  1. 深入理解Kafka Connect:转换器和序列化
  2. linux部署安装nexus私服
  3. 如何成为python 数据分析师_如何七周成为数据分析师20:了解和掌握Python的函数...
  4. 阿里开源分布式事务解决方案 Fescar
  5. idea启动java Maven项目,出现“ java: 程序包xxxx不存在“
  6. verilog 除法器
  7. 痞子衡嵌入式:ARM Cortex-M文件那些事(1)- 源文件(.c/.h/.s)
  8. radiogroup只走一次监听事件_如果一生只去一次内蒙,那走这条路线就够了!
  9. 十.jmeter性能测试基础实践(2)
  10. 实验报告(3)-语法分析
  11. 数据挖掘原理与算法(第二版)
  12. 沙盘 服务器未响应,为什么沙盘总是服务启动失败
  13. php语言grads画图,grads画图坐标设置.docx
  14. 曲线平滑算法 matlab,matlab学习之降噪平滑算法
  15. 小米游戏本bios更新_小米游戏本 | 笔记本Air 13.3″ 四核 | 笔记本Air 12.5″ | 笔记本Pro 15.6″BIOS设置...
  16. 学习游戏服务器编程基础篇
  17. IDEA 之搭建spring-boot maven报错Project ‘org.springframework.boot:spring-boot-starter-parent:2.2.0.RELEAS
  18. c#调用新浪微博开放平台接口
  19. java clob 读取_java 实现读取clob
  20. “我祝你不幸并痛苦”——约翰·罗伯茨毕业致辞

热门文章

  1. 不同修饰符的访问权限(private,缺省(默认即default),protected,public)
  2. 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity
  3. Qt之问题: Unknown module(s) in QT: multimedia
  4. Open3d之网格变形
  5. centos nginx不是命令_Linux使用yum安装nginx服务教程
  6. ODBC访问数据库(转载)
  7. 一起来学SpringBoot | 第二篇:SpringBoot配置详解
  8. iOS开发之SceneKit框架--实战地月系统围绕太阳旋转
  9. 分组交换技术HDLC配置简述
  10. 三维点云学习(2)下-Octree