• 自定义分页栏


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                showData(1, 4);//显示第一页记录。。每页显示四条记录
                this.btnPerPage.Enabled = false;
                this.btnFirstPage.Enabled = false;
                getCountPage(4);//窗本加载时得到总页数
                FillDropPage();//添充下拉框
            }
        }
        DataBase dbs = new DataBase();

        protected  static int pageNow = 1;//当前页数
        protected static int CountPage;//总页数

        protected void FillDropPage()
        {
            for (int i = 1; i <=CountPage; i++)
            {
                this.DropPage.Items.Add(i.ToString());
            }
        }

        protected void getCountPage(int i_page)//得到总页数
        {
            int Count = dbs.ExecuteScalar(CommandType.Text, "select count(*) from Test", null);
            CountPage = Count / i_page;
            if (Count % i_page > 0)
            {
                ++CountPage;
            }
            if (CountPage== 1)
            {
                this.btnLastPage.Enabled = false;
                this.btnNextPage.Enabled = false;
            }

        }

        //显示数据
        protected void showData(int i_pageNow, int i_pageSize)
        {
            //得到总记录数
          
            int currentPageStar = (i_pageNow - 1) * i_pageSize + 1;//当前页的第一条记录
            int currentPageEnd = i_pageNow * i_pageSize;//当前页的最后一条记录
            SqlParameter[] Params = new SqlParameter[2];
            Params[0] = dbs.MakeInParams("@currentPageStar", SqlDbType.VarChar, 4, currentPageStar);
            Params[1] = dbs.MakeInParams("@currentPageEnd", SqlDbType.VarChar, 4, currentPageEnd);
            DataSet dst = new DataSet();
            dst = dbs.GetDst(CommandType.StoredProcedure, "p_GetData", Params);
            this.GridView1.DataSource = dst.Tables[0].DefaultView;
            this.GridView1.DataBind();
        }

        //上一页按钮事件
        protected void btnPerPage_Click1(object sender, EventArgs e)
        {
            pageNow = pageNow - 1;
            this.DropPage.Text = pageNow.ToString();
            showData(pageNow, 4);
            this.btnNextPage.Enabled = true;
            this.btnLastPage.Enabled = true;
            if (pageNow == 1)
            {
                this.btnPerPage.Enabled = false;
                this.btnFirstPage.Enabled = false;
            }
        }

        //下一页按钮事件
        protected void btnNextPage_Click1(object sender, EventArgs e)
        {
            pageNow = pageNow + 1;
            this.DropPage.Text = pageNow.ToString();
            showData(pageNow, 4);
            this.btnPerPage.Enabled = true;
            this.btnFirstPage.Enabled = true;
            if (pageNow == CountPage)
            {
                this.btnNextPage.Enabled = false;
                this.btnLastPage.Enabled = false;
            }
        }
        //首页按钮事件
        protected void btnFirstPage_Click(object sender, EventArgs e)
        {
            FisrtEvent();
        }
        //末页按钮事件
        protected void btnLastPage_Click(object sender, EventArgs e)
        {
            LastEvent();
        }
        //通过下拉框选择装到第几页事件
        protected void DropPage_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectPage = Convert.ToInt32(this.DropPage.SelectedItem.Text);
            if (selectPage == 1)//选择了首页
            {
                FisrtEvent();
            }
            else if (selectPage == CountPage)//选择了末页
            {
                LastEvent();
            }
            else
            {
                pageNow =selectPage ;
                showData(pageNow, 4);
            }

        }
        ////选择首页事件(被调用)
        public void FisrtEvent()
        {
            this.btnPerPage.Enabled = false;
            this.btnNextPage.Enabled = true;
            this.btnLastPage.Enabled = true;
            this.btnFirstPage.Enabled = false;
            pageNow = 1;
            this.DropPage.Text = pageNow.ToString();
            showData(1, 4);
        }

        ////选择末页事件(被调用)
        public void LastEvent()
        {
            this.btnNextPage.Enabled = false;
            this.btnPerPage.Enabled = true;
            this.btnFirstPage.Enabled = true;
            this.btnLastPage.Enabled = false;
            pageNow = CountPage;
            this.DropPage.Text = pageNow.ToString();
            showData(CountPage, 4);
        }
    }

    PS:大家在看showDate()事件时会发现我在配置参数时调用了基类,
    还有就是读取表中第m到n条数据的存储过程都没有写出来。。。。
    读取第m条到n条数据在我的博客中有。大家可以去看看: 用sql语句查询从N条到M条的记录 
    还有就是我想
    将这一大串代码封装一下。。若能做成一个组件那就更好了。。希望各位大虾
    指点。。。。谢谢。。。

  • 相关阅读:
    一个ball例程带你进入 Halcon 世界
    新公民读本
    open_window()到底做了什么?
    duilib学习领悟(4)
    duilib学习领悟(3)
    duilib学习领悟(2)
    通过Vue路由传参的两种方式及Vue组件中接收参数的方式
    彻底研透javascript中的对象及面向对象编程
    thinkphp5中使用phpmailer实现发送邮件功能
    小程序和ThinkPHP5结合实现登录状态(含代码)
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1212420.html
Copyright © 2020-2023  润新知