C# WinForm 实现增删改查等功能(Access版) 系列之六-分页

分页模块设计与实现

在ResumeTest主窗体中:

public int pageSize = 0;     //每页显示行数

      public int nMax = 0;         //总记录数

      public int pageCount = 0;    //页数=总记录数/每页显示行数

      public int pageCurrent = 0;   //当前页号

      public int nCurrent = 0;      //当前记录行

 

private void InitDataSet(DataTable _dtInfo)

        {

            DataTable dtInfo = new DataTable();

            dtInfo = _dtInfo;

            pageSize = 1;      //设置页面行数

            nMax = dtInfo.Rows.Count;

           // MessageBox.Show("取得最大值:"+nMax.ToString(),"提示");

            pageCount=(nMax/pageSize);    //计算出总页数

            if ((nMax % pageSize) > 0) pageCount++;

            pageCurrent = 1;    //当前页数从1开始

            nCurrent = 0;       //当前记录数从0开始

            LoadData();

        }

//本方法来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/gisfarmer/archive/2008/08/05/2771166.aspx

        private void LoadData()

        {

            int nStartPos = 0;   //当前页面开始记录行

            int nEndPos = 0;     //当前页面结束记录行

            DataTable dtTemp = dtInfo.Clone();   //克隆DataTable结构框架

           // DataTable dtTemp = dtInfo;

            if (pageCurrent == pageCount)

                nEndPos = nMax;

            else

                nEndPos = pageSize * pageCurrent;

            nStartPos = nCurrent;

            lblPageCount.Text = pageCount.ToString();

            txtCurrentPage.Text = Convert.ToString(pageCurrent);

            //从元数据源复制记录行

            for (int i = nStartPos; i < nEndPos; i++)

            {

                dtTemp.ImportRow(dtInfo.Rows[i]);

                nCurrent++;

            }

            bindingSource1.DataSource = dtTemp;

            bindingNavigator1.BindingSource = bindingSource1;

            dataGridView1.DataSource = bindingSource1;

        }

/// <summary>

        /// 分页实现

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void bindingNavigator1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)

        {

            //本方法来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/gisfarmer/archive/2008/08/05/2771166.aspx

           

            if (e.ClickedItem.Text == "关闭")

            {

                this.Close();

            }

            if (e.ClickedItem.Text == "上一页")

            {

                pageCurrent--;

                if (pageCurrent <= 0)

                {

                    MessageBox.Show("已经是第一页,请点击“下一页”查看!");

                    return;

                }

                else

                {

                    nCurrent = pageSize * (pageCurrent - 1);

                }

                LoadData();

            }

            if (e.ClickedItem.Text == "下一页")

            {

                pageCurrent++;

                if (pageCurrent > pageCount)

                {

                    MessageBox.Show("已经是最后一页,请点击“上一页”查看!");

                    return;

                }

                else

                { 

                   nCurrent=pageSize*(pageCurrent-1);

                }

                LoadData();

            }

 

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值