asp.net下Repeater使用 AspNetPager分页控件进行分页

Daming 2017-05-28
0条评论 866 次浏览
Daming 2017-05-280条评论 866 次浏览

分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等, 而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。

AspNetPager的开发者网站:http://www.webdiyer.com/aspnetpager

下载压缩包解压,找到dll文件并添加引用

接下来我们使用AspNetPager控件给Repeater分页:

.aspx中

首先在头部添加以下代码(注册控件):

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

在相应的位置加上以下代码:

           </div>
            </ItemTemplate>
        </asp:Repeater>
        <%--前台部分--%>
        <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" CssClass="pagination" LayoutType="Ul" PagingButtonLayoutType="UnorderedList" PagingButtonSpacing="0" CurrentPageButtonClass="active" PageSize="5" OnPageChanged="AspNetPager1_PageChanged">
        </webdiyer:AspNetPager>
        
        


.cs中:

 
        if (!IsPostBack)
        {
       AspNetPager1.RecordCount = article_count;//article_count这个变量是查询结果的总数
      }

 protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        bindData();
    }


    private void bindData()
    {
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = articleList;//articleList是我这边查询的结果,是未分页前repeater的数据源,在这里作为中间件pds的数据源
        pds.AllowPaging = true;//启用分页
        pds.PageSize = AspNetPager1.PageSize;//分页显示的数量
        pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
        Repeater_articleList.DataSource = pds;//将pds作为repeater的数据源
        Repeater_articleList.DataBind();

        

    }

ok,到这里就可以使用了,最后修改以下css样式:

先引入 bootstrap.css。然后在自己的样式表添加以下代码:

    /*先引入bootstrap.css*/
.pagination a[disabled]{  color: #777;cursor: not-allowed;background-color: #fff;border-color: #ddd;}
.pagination span.active{z-index: 2;color: #fff;cursor: default;background-color: #337ab7;border-color: #337ab7;}

效果就出来了:


1+

发表评论

电子邮件地址不会被公开。