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

页面代码

<div class="bookList">

    <asp:Repeater ID="rpBooks" runat="server">

        <HeaderTemplate>

            <ul class="title">

                <li class="bName">书名</li>

                <li class="bAuthor">作者</li>

                <li class="bPrice">价格</li>

            </ul>

        </HeaderTemplate>

        <ItemTemplate>

            <ul class="data">

                <li class="bName"><%#eval_r("title").ToString().Length > 20 ? eval_r("title").ToString().Substring(0, 20)+"..." : eval_r("title").ToString()%></li>

                <li class="bAuthor"><%#eval_r("author").ToString().Length > 20 ? eval_r("author").ToString().Substring(0, 20) + "..." : eval_r("author").ToString()%></li>

                <li class="bPrice"><%#eval_r("unitprice") %></li>

            </ul>

        </ItemTemplate>

        <AlternatingItemTemplate>

             <ul class="data" style="background-color:Gray;">

                <li class="bName"><%#eval_r("title").ToString().Length > 20 ? eval_r("title").ToString().Substring(0, 20)+"..." : eval_r("title").ToString()%></li>

                <li class="bAuthor"><%#eval_r("author").ToString().Length > 20 ? eval_r("author").ToString().Substring(0, 20) + "..." : eval_r("author").ToString()%></li>

                <li class="bPrice"><%#eval_r("unitprice") %></li>

            </ul>

        </AlternatingItemTemplate>

    </asp:Repeater>

<div style="clear:both;"></div>

<!--分页跳转-->

<p class="page">

<asp:LinkButton ID="lbtnFirst" CommandName="first" runat="server" oncommand="lbtnFirst_Command">首页</asp:LinkButton>

    <asp:LinkButton ID="lbtnPrevious" CommandName="previous" runat="server" oncommand="lbtnFirst_Command">上一页</asp:LinkButton>

    <asp:Label ID="lblPageIndex" runat="server" Text="1"></asp:Label>

    <asp:Label ID="Label3" runat="server" Text="/"></asp:Label>

    <asp:Label ID="lblPageSum" runat="server" Text=""></asp:Label>&nbsp;

    <asp:LinkButton ID="lbtnNext" CommandName="next" runat="server" oncommand="lbtnFirst_Command">下一页</asp:LinkButton>

    <asp:LinkButton ID="lbtnLast" CommandName="last" runat="server" oncommand="lbtnFirst_Command">尾页</asp:LinkButton>

    跳转到

    <asp:TextBox ID="txtPageIndex" runat="server" Width="30px"></asp:TextBox>

<asp:Button ID="btnGo" runat="server" Text="跳转到" CommandName="btn"

        oncommand="lbtnFirst_Command" />

共<asp:Label ID="lblCount" runat="server" Text="Label"></asp:Label>

    条记录</p>

    </div>

后置代码

 int index =1;//初始化当前页索引,默认显示第一页
    int pageSize = 5;//设置每页显示条数
    Common.Page page =null;
    protected void Page_Load(object sender, EventArgs e)
    {
        //前段代码中给当前页标签默认为第一页,用标签保存当前页面索引
        index =int.Parse(lblPageIndex.Text);
        //在页面首次加载的时候,加载总页数,总记录数和信息列表
        if (!IsPostBack )
        {
            page = new Common.Page(index, pageSize);
            this.lblCount.Text = page.Count.ToString();
            this.lblPageSum.Text = page.PageSum.ToString();
            BookBind();
        }
    }
    //翻页按钮命令事件
    protected void lbtnFirst_Command(object sender, CommandEventArgs e)
    {
        page = new Common.Page(index, pageSize);
        string commandName = e.CommandName;
        switch (commandName)
        {
            case "first":
                page.PageIndex = 1;

                break;
            case "previous":
                if (index==1)
                {
                    page.PageIndex = 1;
                }
                else
                {
                    page.PageIndex =index-1;
                }
                break;
            case "next":
                if (index == page.PageSum)
                {
                    page.PageIndex = page.PageSum;
                }
                else
                {
                    page.PageIndex=index+1;
                }
                break;
            case "last":
                page.PageIndex =page.PageSum;
                break;
            case "btn":
                page.PageIndex = int.Parse(txtPageIndex.Text);
                break;
        }
        this.lblPageIndex.Text = page.PageIndex.ToString();
        BookBind();
    }
    //给Repeater控件绑定数据
    private void BookBind()
    {
        this.rpBooks.DataSource = page.CurPager;
        this.rpBooks.DataBind();
    }
    //获取记录总数的方法
    public int GetCount()
    {
        return page.Count;
    }
    //获取总页数的方法
    public int GetPageSum()
    {
        return page.PageSum;
    }
 

注意事项

本例使用label标签保存当前页面索引,也可以使用视图状态保存。

时间: 2024-07-29 13:49:37

使用Sql分页方法给Repeater控件分页的方法的相关文章

ASP.NET中控件实现分页功能/Repeater控件分页

//repeate.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="repeate.aspx.cs" Inherits="repeate" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XH

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

早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource(v=vs.110).aspx 想起以前Insus.NET只对Gridview和DataList控件进行自定义分页.<GridView和DataList分页组件与用户控件>http://www.cnblogs.com/insus/archive/2009/03/19/14

repeater控件实现分页

repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果. 分页分为真分页和假分页. 真分页:控件上一页需要显示多少数据,就从数据库取出并绑定多少数据,每次换页时都需要访问数据库. 假分页:从数据库一次性取出所有数据绑定到控件上,再将所有数据根据一页显示多少条而分页. 从以上二者的概念上我们可以看出,区别在于分页时从数据库读取信息的方式,真分页的效率无疑是最高的.假分页在首次页面加载的时候会比较慢(如果数据量较多). 二者其实各有各的优缺点,可根据需要来自行选

Repeater控件-实现分页(升级版)

原来已经写了一个repeater控件的分页,今天有些了一个优化的程序. 1.解决了当数据条数,小于要显示的数据条数时,出现上一页按钮和还能继续递减的问题. 2.同时,还添加了在显示数据的表中进行删除和修改数据. 3.还解决了页面间的传值问题,(当点击Edit按钮时,页面跳转到另一个界面,也就是修改信息界面,然后进行修改,修改完成后保存并返回主界面.) 以上就是,新增的内容. 下面是代码: 总计使用了两个页面,一个是显示数据的页面(Default.aspx)另一个是修改信息的页面(Edit.asp

AspNetPager控件分页使用方法

AspNetPager控件官方下载地址:http://www.webdiyer.com/aspnetpager/ 把控件加到项目中(添加自定义控件的方法),并把它拖放到页面上 <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="

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

repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传递 4.数据的导出功能 前台代码: <!--表格具体内容--> <div class="table-box"> <table> <thead> <tr> <th>编号</th> <th>姓名&l

AspNetPager分页控件的使用方法

1. 首先将AspNetPager.dll复制于应用程序下的bin目录,打开解决方案,引入dll文件 (通过NuGet获取) 2. 在工具栏中添加控件,这样可以支持拖拽使用 3.页面拖入分页控件,设置基本样式(建议跟repeater控件绑定) <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> <webdiye

给Repeater控件里添加序号的5种方法

.net是目前非常热门的一种程序编译语言,在.net培训中的众多知识点中,给Repeater控件里添加序号的5种方法是非常重要的一个.下面就由达内的老师为大家介绍一下这方面的内容. Repeater是我们经常用的一个显示数据集的数据控件,经常我们希望在数据前显示数据的序号,那么我们该怎么为Repeater控件添加序号呢?下面编辑为大家介绍几种常用的为Repeater控件添加序号的方法: 方法一:利用Container.ItemIndex属性,代码如下: <Itemtemplate ><%

Repeater控件的分页实现

本文讲解Repeater控件与PagedDataSource相结合实现其分页功能.PagedDataSource 类封装那些允许数据源控件(如 DataGrid.GridView)执行分页操作的属性.如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类. PagedDataSource 类的部分公共属性: AllowCustomPaging // 获取或设置指示是否启用自定义分页的值. AllowPaging // 获取或设置指示是否启用分页的值. Count // 获取要从数据源使