这篇文章主要介绍了asp.net自定义分页控件示例,大家参考使用吧
一、.ascx页面
复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Pagination.ascx.cs" Inherits="IOCS.WEB.UserControl.Pagination" %> <link href="../Content/Css/Pager.css" rel="stylesheet" type="text/css" /> <div id="tbPage" class="pager" runat="server" > 記錄總數:<asp:Label ID="LRecords" runat="server"></asp:Label> 總頁數:<asp:Label ID="LPages" runat="server"></asp:Label> 當前頁:<asp:Label ID="LPage" runat="server"></asp:Label>
<asp:LinkButton ID="LinkFirst" runat="server" CommandArgument="first" nClick="PagerButtonClick" Text="首頁"></asp:LinkButton>
<asp:LinkButton ID="LinkPrevious" runat="server" CommandArgument="prev" nClick="PagerButtonClick" Text="上一頁"></asp:LinkButton>
<asp:LinkButton ID="LinkNext" runat="server" CommandArgument="next" nClick="PagerButtonClick" Text="下一頁"></asp:LinkButton>
<asp:LinkButton ID="LinkLast" runat="server" CommandArgument="last" nClick="PagerButtonClick" Text="末頁"></asp:LinkButton> 轉到第<asp:TextBox ID="txtpage" CssClass="piut" runat="server" MaxLength="5" AutoPostBack="True" nTextChanged="txtpage_TextChanged"></asp:TextBox>頁
二、.ascx.cs文件
复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
namespace IOCS.WEB.UserControl { public partial class Pagination : System.Web.UI.UserControl { public event EventHandler PageButtonClick; public bool FirstPost = false; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) {
} // 只輸入數字 txtpage.Attributes.Add("onclick", @"if(!((event.keyCode>=48&&event.keyCode<=57) ||(event.keyCode>=96&&event.keyCode<=105) ||(event.keyCode==8)))event.returnValue=false;" );
} GridView _gv;
/// <summary> /// 需要分頁的GridView /// </summary> public GridView TargetControlID { set { _gv = value; } get { return _gv; } }
protected void PagerButtonClick(object sender, EventArgs e) { //獲得linkebutton的參數值 string arg = ((LinkButton)sender).CommandArgument; switch (arg) { case ("next"): { if (_gv.PageIndex < _gv.PageCount - 1) { _gv.PageIndex=_gv.PageIndex+1; } break; } case ("prev"): { if (_gv.PageIndex > 0) { _gv.PageIndex--; } break; } case ("first"): { _gv.PageIndex = 0; break; } case ("last"): { if (_gv.PageCount > 0) { _gv.PageIndex = _gv.PageCount - 1; } break; }
default: { _gv.PageIndex = Convert.ToInt32(arg); break; } } PageButtonClick(sender, e);
}
public void SetPageButton() { if (_gv.PageIndex == 0) { LinkFirst.Enabled = false; LinkPrevious.Enabled = false;
LinkFirst.Style["color"] = "gray"; LinkPrevious.Style["color"] = "gray";
object s = LinkFirst.Style.Keys; if (_gv.PageCount > 1) { LinkNext.Enabled = true; LinkLast.Enabled = true; txtpage.Enabled = true; txtpage.Enabled = true; LinkNext.Style["color"] = "#000"; LinkLast.Style["color"] = "#000"; txtpage.Style["readonly"] = "false"; } else { LinkNext.Enabled = false; LinkLast.Enabled = false; txtpage.Enabled = false; LinkNext.Style["color"] = "gray"; LinkLast.Style["color"] = "gray"; txtpage.Style["readonly"] = "true";//background-color } } else if (_gv.PageIndex == _gv.PageCount - 1) { LinkFirst.Enabled = true; LinkPrevious.Enabled = true; LinkNext.Enabled = false; LinkLast.Enabled = false; LinkFirst.Style["color"] = "#000"; LinkPrevious.Style["color"] = "#000"; LinkNext.Style["color"] = "gray"; LinkLast.Style["color"] = "gray"; } else { LinkFirst.Enabled = true; LinkPrevious.Enabled = true; LinkNext.Enabled = true; LinkLast.Enabled = true; LinkFirst.Style["color"] = "#000"; LinkPrevious.Style["color"] = "#000"; LinkNext.Style["color"] = "#000"; LinkLast.Style["color"] = "#000"; } }
/// <summary> /// 設定頁面信息 /// </summary> /// <param name="dsCount">DataSet的紀錄總數</param>
public void SetPageRecord(int dsCount) { LRecords.Text = dsCount.ToString(); int mod= dsCount%_gv.PageSize; LPages.Text = (mod == 0 ? dsCount / _gv.PageSize : dsCount / _gv.PageSize + 1).ToString(); LPage.Text = (_gv.PageIndex + 1).ToString(); tbPage.Visible = true; SetPageButton(); }
protected void txtpage_TextChanged(object sender, EventArgs e) { if (txtpage.Text != "") { try { int index = int.Parse(txtpage.Text.Trim()); if (index <= _gv.PageCount && index >= 1) { _gv.PageIndex = index - 1; } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "<script. language='javascript'>alert('對不起,頁數超過索引范圍!');</script>"); } } catch {
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "<script. language='javascript'>alert('對不起,只能輸入數字!');</script>"); } } PageButtonClick(sender, e); } } }
|