温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在asp.net中自定义一个分页控件

发布时间:2021-04-15 17:30:17 来源:亿速云 阅读:131 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关如何在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中自定义一个分页控件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI