zoukankan      html  css  js  c++  java
  • Csharp windowform bindingNavigator,bindingSource,DataGridView簡單分頁:首頁,上一頁,下一頁,末頁

       /// <summary>
        /// 塗聚文 2011-10-24 (參考相關網絡和書藉資料)
        /// 締友計算機信息技術有限公司
        ///C# Winform 簡單分頁: 首頁,上一頁,下一頁,末頁
        /// </summary>
        public partial class FormDataGridViewPage : Form
        {
            /// <summary>
            /// 每页显示行数
            /// </summary>
            int pageSize = 0; 
            /// <summary>
            /// 总记录数
            /// </summary>
            int nMax = 0;        
            /// <summary>
            /// 页数=总记录数/每页显示行数
            /// </summary>
            int pageCount = 0;   
            /// <summary>
            /// 当前页号
            /// </summary>
            int pageCurrent = 0;  
            /// <summary>
            /// 当前记录行
            /// </summary>
            int nCurrent = 0;     
    
            DataSet ds = new DataSet();
            DataTable dtInfo = new DataTable();
            AdministrativeAreaListBLL administrativeAreaListBLL = new AdministrativeAreaListBLL();
            AdministrativeAreaListInfo administrativeAreaListInfo = new AdministrativeAreaListInfo();
            FormOperatingStringInfo formOperatingStringInfo = new FormOperatingStringInfo();
    
            /// <summary>
            /// 
            /// </summary>
            public FormDataGridViewPage()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void FormDataGridViewPage_Load(object sender, EventArgs e)
            {
                dtInfo = administrativeAreaListBLL.SelectAdministrativeAreaListDataTable();
                InitDataSet();
            }  
            /// <summary>
            /// 用首页数据填充
            /// 塗聚文
            /// 締友計算機信息技術有限公司
            ///C# Winform 簡單分頁: 首頁,上一頁,下一頁,末頁
            /// </summary>
            private void InitDataSet()
            {
                pageSize = 20;      //设置页面行数
                nMax = dtInfo.Rows.Count;
                pageCount = (nMax / pageSize);    //计算出总页数
                if ((nMax % pageSize) > 0) pageCount++;
                pageCurrent = 1;    //当前页数从1开始
                nCurrent = 0;       //当前记录数从0开始
                LoadData();
            }
            /// <summary>
            /// 用末頁數據填育
            /// 塗聚文
            /// 締友計算機信息技術有限公司
            ///C# Winform 簡單分頁: 首頁,上一頁,下一頁,末頁
            /// </summary>
            private void EndDataSetPage()
            {
                pageSize = 20;      //设置页面行数
                nMax = dtInfo.Rows.Count;
                pageCount = (nMax / pageSize);    //计算出总页数  
                int rou = nMax % pageSize;
                if (rou > 0)
                {
                    nCurrent = nMax - (nMax % pageSize);//不是正好整除页码,取余数页
                    pageCount++;
                }
                else
                {
                    nCurrent = nMax - pageSize;
                }
       
                pageCurrent = pageCount;
                LoadData();
            }
            /// <summary>
            /// 填充DataGridView
            /// 塗聚文
            /// 締友計算機信息技術有限公司
            ///C# Winform 簡單分頁: 首頁,上一頁,下一頁,末頁
            /// </summary>
            private void LoadData()
            {
                int nStartPos = 0;   //当前页面开始记录行
                int nEndPos = 0;     //当前页面结束记录行
                DataTable dtTemp = dtInfo.Clone();   //克隆DataTable结构框架
    
                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++;
                }
                bindingSourceInfo.DataSource = dtTemp;
                bindingNavigatorInfo.BindingSource = bindingSourceInfo;
                DataGridViewInfo.DataSource = bindingSourceInfo;
            }
            /// <summary>
            /// 点击的选择页操作
            /// 涂聚文
            /// 締友計算機信息技術有限公司
            ///C# Winform 簡單分頁: 首頁,上一頁,下一頁,末頁
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void bindingNavigatorInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
                if (e.ClickedItem.Text == "关闭")
                {
                    this.Close();
                }
                if (e.ClickedItem.Text == "首页")
                {
                    pageCurrent = 1;
                    pageSize = 20;
                    InitDataSet();
                }
                if (e.ClickedItem.Text == "末页")
                {
                    EndDataSetPage();
                }
                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();
    
                }
            }
    }
    
    哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)成功.---Geovin Du(涂聚文)
  • 相关阅读:
    131. 分割回文串
    博客开通第二十七天
    博客开通第三十八天
    博客开通第56天
    博客开通第三十三天
    博客开通第61天
    博客开通第62天
    博客开通第二十六天
    博客开通第四十七天
    博客开通第63天
  • 原文地址:https://www.cnblogs.com/geovindu/p/2223045.html
Copyright © 2011-2022 走看看