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

第一种方式:

数据库连接代码:
using System;
using System.Data;
using System.Configuration;
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.SqlClient;
using System.Data.Sql;

 

public partial class _Default : System.Web.UI.Page
{
    private void con()
    {
           SqlConnection con = new SqlConnection("server='.';database=test;uid=sa;pwd=123456;");
        SqlConnection conn = new SqlConnection();
        DataSet ds = new DataSet();
        SqlDataAdapter sda = new SqlDataAdapter("select * from news", con);
        sda.Fill(ds, "newsTitle");
        //SqlDataAdapter sda2 = new SqlDataAdapter("select * from ProspectiveBuyer", con);
        // sda2.Fill(ds, "title");
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables["name"].DefaultView;
        //PagedDataSource aa = new PagedDataSource();
        pds.AllowPaging = true;//允许分页
        pds.PageSize = 8;//单页显示项数
        int CurPage;
        if (Request.QueryString["Page"] != null)
            CurPage = Convert.ToInt32(Request.QueryString["Page"]);
        else
            CurPage = 1;
        pds.CurrentPageIndex = CurPage - 1;
        int Count = pds.PageCount;

        lblCurrentPage.Text = "当前页:" + CurPage.ToString();
        labPage.Text = Count.ToString();

        if (!pds.IsFirstPage)
        {
            this.first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
            this.last.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(Count - 1); ;
            up.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
        }
        else
        {
            this.first.Visible = false ;
            this.last.Visible = false ;

        }

        if (!pds.IsLastPage)
        {

            next.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
        }
        else
        {
            this.first.Visible = false;
            this.last.Visible = false;

        }

        Repeater1.DataSource = pds ;
        Repeater1.DataBind();

    }

 

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            con();
            this.first.Visible = true;
            this.last.Visible = true;
            //this.Repeater1.DataSource = pds();
            //this.Repeater1.DataBind();

        }

    }
}

aspx文件代码:
<table>
    <tr ><td class="style1" align ="left" >hehe</td></tr>
   
    <tr ><td class="style1">  
       <asp:Repeater ID="Repeater1" runat="server" >
       
        <HeaderTemplate ><table><tr><td>头模板</td></tr></HeaderTemplate>
        <ItemTemplate ><tr><td ><font color="red" > <%#("timekey")%></font></td></tr></ItemTemplate>
        <AlternatingItemTemplate ><tr><td > <a href ='Default.aspx?id=<%#"databaselogid" %>'><%#("SalesAmountQuota")%></a></td></tr></AlternatingItemTemplate>
        <FooterTemplate ><tr><td>尾模板</td></tr></table></FooterTemplate>
        </asp:Repeater>
        </td> </tr>
   
   
<tr> <td class="style1">
     <asp:HyperLink ID="first" runat="server">首页</asp:HyperLink>
     <asp:HyperLink ID="next" runat="server">下一页</asp:HyperLink>
     <asp:HyperLink ID="up" runat="server">上一页</asp:HyperLink>
     <asp:HyperLink ID="last" runat="server">末页</asp:HyperLink>
     </td></tr>
           
           <tr> <td class="style1">当前页为:<asp:Label ID="lblCurrentPage" runat="server"
                    Text="Label"></asp:Label>&nbsp;
                共<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>
                页</td><td class="style1" style="height: 21px">
     <asp:HyperLink ID="first" runat="server">首页</asp:HyperLink>
  
     <asp:HyperLink ID="up" runat="server">上一页</asp:HyperLink>
       <asp:HyperLink ID="next" runat="server">下一页</asp:HyperLink>
     <asp:HyperLink ID="last" runat="server">末页</asp:HyperLink>
     </td></tr>

            
    </table>
第二种方式:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class databind : System.Web.UI.Page
{
  
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            num.Text = "1";
            repdatabind();
        }

    }
    public void repdatabind()
    {
        
        SqlConnection con = new SqlConnection("server='.';database=test;uid=sa;pwd=123456;");
        SqlConnection conn = new SqlConnection();
        DataSet ds = new DataSet();
        SqlDataAdapter sda = new SqlDataAdapter("select * from DimProduct", con);
        sda.Fill(ds, "name");
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables["name"].DefaultView;
        pds.AllowPaging = true;//允许分页
        pds.PageSize = 8;//单页显示项数

        int curpage = Convert.ToInt32(num.Text);
        this.BtnDown.Enabled = true;
        this.BtnUp.Enabled = true;
        pds.CurrentPageIndex = curpage - 1;
        if (curpage == 1)
        {
            this.BtnUp.Enabled = false;
        }
        if (curpage == pds.PageCount)
        {
            this.BtnDown.Enabled = false;
        }
        this.Repeater1.DataSource = pds;
        this.Repeater1.DataBind();
    }

    protected void BtnUp_Click(object sender, EventArgs e)
    {
        this.num.Text =Convert.ToString ( Convert.ToInt32(num.Text)- 1) ;
        repdatabind();
    }
    protected void BtnDown_Click(object sender, EventArgs e)
    {
        this.num.Text = Convert.ToString(Convert.ToInt32(num.Text)+ 1) ;
        repdatabind();
    }
}
aspx代码:
<%@ Page Language="C#" CodeFile="databind.aspx.cs" Inherits="databind" %>

<!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:Panel ID="Panel1" runat="server" Height="173px">
            <asp:Repeater ID="Repeater1" runat="server"><HeaderTemplate ><table border onmousedown="1" ><tr><td >头模板</td></tr></HeaderTemplate><ItemTemplate ><tr><td>序号:<%# ("ProductKey") %></td></tr><tr><td>编码:<%# ("ProductAlternateKey") %></td></tr></ItemTemplate><FooterTemplate ><tr><td>脚模板</td></tr></table></FooterTemplate>
            </asp:Repeater>
            当前页:<asp:Label ID="num" runat="server"></asp:Label>
            <br />
            <asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上一页" />
            <asp:Button ID="BtnDown" runat="server" onclick="BtnDown_Click" Text="下一页" />
        </asp:Panel>
        <br />
        <br />
   
    </div>
    </form>
</body>
</html>

 

时间: 2024-10-31 23:32:19

ASP.NET(C#) Repeater分页的实现的相关文章

asp.net Repeater分页实例(PageDataSource的使用)_实用技巧

Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据. 实现DataList或Repeater控件的分页显示有几种方法: 1.写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable) 2.使用PagedDataSource类(位

Asp.Net可定制分页用户控件

今天研究了以下Asp.Net 可定制分页,用起来很爽,下面给大家介绍下. 借助 Asp.Net 提供的数据绑定控件,我们无需太多的代码,甚至不需要代码,只要在 VS2005 中拖拽几下控件,进行一些属性的设置,便可以实现在Asp时代需要做大量工作才能够实现的分页功能.但在实际的应用中,尤其是在Web站点程序中,我们经常需要更加丰富的用户界面,而类似DataList或者 GridView 这样的数据控件往往不能或者很难满足我们的要求.此时,我们常常求助于 Repeater 控件,这样我们依旧会面临

ASP.NET高效率的分页算法程序代码

 使用ASP.NET开发web程序时,经常会遇到数据列表页需要分页的问题.在ASP.NET里,分页可以通过绑定数据控件实现,如GridView.DataList.Repeater.ListView等这些数据控件都可以实现分页效果.它们之间的一些对比:     GridView:开发效率高,自带分页.排序.但占用资源高.     DataList:分页和排序需要手动编码,分页需要使用 PagedDataSource类实现.     Repeater:不提供任何布局,开发周期长.     注意,使用

在ASP中改善动态分页的性能

动态|分页|性能 From computerworld 在ASP中改善动态分页的性能人民银行济南分行清算中心 张立锋 山东省水利科学研究院 张 禾 -------------------------------------------------------------------------------- 概 述 ---- 现在有不少介绍利用ASP实现动态分页的文章,方法大同小异,就是每次利用ADO返回原始数据满足条件记录集中的指定页.但在实际工程应用中,原始数据量通常很大,原始数据的加工比较

亲密接触ASP.Net(11) 如何分页

在ASP.Net内中,如何做到分页 我不只一次地被别人问起,如何在ASP.Net实现分页功能.我实在不愿意回答这个问题.因为在ASP.Net中实现分页,实在是太简单了,简单到你一看到程序就会去气得跳楼,呵呵要发表感叹,为什么这个东东不早出来. 在以住的WEB技术中,我们要做到分页,经常是一长串代码才能搞定它,而且每用一个页面,就要重写一次,烦的要命.但是在ASP.Net中借助DataGrid控件,我们分页程序可以轻松搞定,需要的只是对DataGrid控件做一些设定.我们还是借助一个程序来看:)

ASP中关于帖子分页显示的基本方法

ASP中关于帖子分页显示的基本方法 在了解了Recordset对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的.首先,我们可以为PageSize属性设置一个值,从而指定从记录组中取出的构成一个页的行数:然后通过RecordCount属性来确定记录的总数:再用记录总数除以PageSize就可得到所显示的页面总数:最后通过AbsolutePage属性就能完成对指定页的访问.好象很并不复杂呀,下面让我们来看看程序该如何实现呢? 我们建立这样一个简单的BBS应用程序,它的数据

asp.net Google样式分页控件

  asp.net Google样式分页控件 使用方法: 引入控件 <%@ Register Assembly="TinyToolBox" Namespace="TinyMS.UI" TagPrefix="tm" %> 使用控件 页码处理事件 protected void TinyPager1_Click(object sender, TinyMS.UI.PagerEventArgs e) { his.Label1.Text = &q

asp.net关于repeater嵌套repeater的问题

问题描述 asp.net关于repeater嵌套repeater的问题 希望有个大神能够告知, 大类A 小类a 小类b 小类c 大类B 小类d 小类e 小类f 想实现像这样的格式,现在我数据库有两个表,前端的控件绑定的都是对应的类名字段,主要是后台不知道怎么去通过ID去筛选然后绑定到对应的类下,求大神告知,最好有个代码解释,网上的资料都找过了,我不知道他们是两个表还是一个表,而且最后他们绑定数据的那段代码有点不理解,谢谢了 解决方案 大类Repeater只要绑定一次 DataSource. 在大

asp.net获取Repeater三个嵌套

问题描述 asp.net获取Repeater三个嵌套 大家看看怎么查找Repeater控件这个 解决方案 提供参考吧http://blog.csdn.net/david_520042/article/details/6696908 private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { BLL.Products products =ne

ASP.NET MVC2实现分页和右键菜单

右键菜单非常方便,很多时候会用到.这篇文章将使用一个JQUERY的插件在asp.net mvc中实现右键菜单.本文还将介绍一下在asp.net mvc中如何实现简单的分页.效果如下图: 首先,下载此插件. 新建一个asp.net mvc应用程序.将此插件放入Scripts文件夹.并在页面上引用. 这个demo使用到NORTHWND数据库的Product表. 定义右键菜单: <div class="contextMenu" id="myMenu1"> &l