如何在asp.net中自定义一个分页控件
创始人
2024-11-29 04:42:33
0次

一、.ascx页面

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Pagination.ascx.cs" Inherits="IOCS.WEB.UserControl.Pagination" %>


    記錄總數:
    總頁數:
    當前頁:
        
        
        
        
    轉到第頁

二、.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;
        ///         /// 需要分頁的GridView        ///         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";            }        }
        ///         /// 設定頁面信息        ///         /// DataSet的紀錄總數
        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", "alert('對不起,頁數超過索引范圍!');");                    }                }                catch                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "alert('對不起,只能輸入數字!');");                }            }            PageButtonClick(sender, e);        }    }}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...