页面设计器内代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="UserControl_Pager" %>
<table width="98%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td align="right" style="padding-right: 20px; padding-top: 5px">
<asp:HyperLink ID="hpl_First" runat="server">首页</asp:HyperLink> <asp:HyperLink
ID="hpl_Prev" runat="server">上页</asp:HyperLink>
<asp:HyperLink ID="hpl_Next" runat="server">下页</asp:HyperLink> <asp:HyperLink
ID="hpl_Last" runat="server">末页</asp:HyperLink>
<asp:Label ID="lb_CurrentPage" runat="server"></asp:Label>/<asp:Label ID="lbl_PageCount"
runat="server"></asp:Label>页 共<asp:Label ID="lbl_ItemCount" runat="server"></asp:Label>条记录
转到
<asp:TextBox ID="txb_Page" runat="server" Width="30px" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"></asp:TextBox>页 <asp:LinkButton
ID="lbtn_goto" runat="server" OnClick="lbtn_goto_Click" Style="ime-mode: disabled;">转到</asp:LinkButton>
</td>
</tr>
</table>
后台.cs代码:
public string url;//页面地址 public string Params;//页面传值参数 public int CurPage;//当前页码 private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { ViewState["pageUrl"] = url; ViewState["pageParams"] = Params; } } #region 数据绑定 /// <summary> /// 数据绑定 /// </summary> /// <param name="dt"></param> /// <returns></returns> public PagedDataSource PagerDataBind(DataView dv) { PagedDataSource pds = new PagedDataSource(); pds.AllowPaging = true; //允许分页 pds.DataSource = dv; CurPage = 1; //设置当前页的索引 try { if (Request.QueryString["Page"] != null) { CurPage = Convert.ToInt32(Request.QueryString["Page"].ToString()); } if (CurPage < 1 || CurPage > pds.PageCount) { Response.Redirect(url + "?Page=1" + Params); } } catch { Response.Redirect(url + "?Page=1" + Params); } pds.CurrentPageIndex = CurPage - 1; //显示状态信息 lbl_ItemCount.Text = pds.DataSourceCount.ToString(); //当前页 lb_CurrentPage.Text = CurPage.ToString(); this.txb_Page.Text = CurPage.ToString(); //总页数 lbl_PageCount.Text = pds.PageCount.ToString(); //如果当前页面不是首页 if (!pds.IsFirstPage) { hpl_Prev.NavigateUrl = url + "?Page=" + Convert.ToString(CurPage - 1) + Params; hpl_First.NavigateUrl = url + "?Page=1" + Params; } //如果当前页面不是最后一页 if (!pds.IsLastPage) { hpl_Next.NavigateUrl = url + "?Page=" + Convert.ToString(CurPage + 1) + Params; hpl_Last.NavigateUrl = url + "?Page=" + pds.PageCount.ToString() + Params; } return pds; } #endregion #region Web 窗体设计器生成的代码 /// <summary> /// 初始化 /// </summary> /// <param name="e"></param> override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器 /// 界面设计的变现内容 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion #region 跳转到 /// <summary> /// 跳转到 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbtn_goto_Click(object sender, EventArgs e) { if (Convert.ToInt32(txb_Page.Text) > Convert.ToInt32(this.lbl_PageCount.Text)) { Response.Redirect(ViewState["pageUrl"] + "?Page=" + lbl_PageCount.Text + ViewState["pageParams"]); } else { Response.Redirect(ViewState["pageUrl"] + "?Page=" + txb_Page.Text + ViewState["pageParams"]); } } #endregion }
页面调用:
<%@ Register Src="../UserControl/Pager.ascx" TagName="Pager" TagPrefix="uc" %>
html代码:
<uc:Pager ID="Pager" runat="server"></uc:Pager>
最后页面后台给分页控件赋值,调用PagerDataBind()方法。