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(涂聚文)