这期内容当中小编将会给大家带来有关如何在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); } }}
上述就是小编为大家分享的如何在asp.net中自定义一个分页控件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。