• .NET用户自定义分页控件


    页面设计器内代码:

    <%@ 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>&nbsp;<asp:HyperLink
    ID="hpl_Prev" runat="server">上页</asp:HyperLink>&nbsp;
    <asp:HyperLink ID="hpl_Next" runat="server">下页</asp:HyperLink>&nbsp;<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>页&nbsp;<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()方法。

  • 相关阅读:
    Nginx PHP页面找不到总是返回404
    Bing每日一图
    Vue3
    PHP PDO相关
    IIS 搭建FTP
    vue根据环境不同设置不同的入口文件
    Vue生成打包报告
    Vue项目在执行build命令期间中移除所有consol.log
    Nprogress 的使用
    Vue报错处理
  • 原文地址:https://www.cnblogs.com/Cynosure/p/2385461.html
Copyright © 2020-2023  润新知