AspNetPager使用方法:
1、首先引用AspNetPager.dll;
2、在所使用的前台页面加入:<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>,指明DLL地址和命名空间;
3、在前台.aspx中示例代码
<asp:Content runat="server" ContentPlaceHolderID="main">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" class="table table-bordered table-striped table-hover">
<tr><th style="width:15%">订单编号</th><th style="width:15%">订单日期</th><th style="width:30%">公司名称</th><th style="width:20%">客户编号</th><th style="width:20%">雇员姓名</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
<td><%#DataBinder.Eval(Container.DataItem, "companyname")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"employeename")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<div class="pull-right">
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" CssClass="pagination" LayoutType="Ul" PagingButtonLayoutType="UnorderedList" PagingButtonSpacing="0" CurrentPageButtonClass="active" PageSize="12" OnPageChanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
</div>
</asp:Content>
在.aspx.cs后台页面加上此方法:
public partial class PagedRepeater_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
AspNetPager1.RecordCount = totalOrders;
//BindDataRepeater(); //使用url分页,只需在分页事件处理程序中绑定数据即可,无需在Page_Load中绑定,否则会导致数据被绑定两次
}
}
private void BindDataRepeater()
{
Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
Repeater1.DataBind();
}
分页改变事件:
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindDataRepeater();
}
注意:1、同时,还要指定以下值:
AspNetPager1.PageSize=10;//每页显示多少条记录
AspNetPager1.RecordCount=100;//总页数
2、因为该控件与数据显示和绑定是独立的,所以可以根据所要显示的页数AspNetPager1.CurrentPageIndex,取得该页数据datatable,然后再使用repeater等控件绑定:
Repeater1.DataSource = dt;
Repeater1.DataBind();
3、PageChanging 事件被引发,NewPageIndex 的值是:1
PageChanged事件被引发,当前页索引是:1