您的位置:首页 > 编程语言 > C#

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

2010-04-01 21:08 841 查看
分页模块设计与实现

在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();

}

//本方法来自CSDN博客,转载请标明出处:http://blog.csdn.net/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)

{

//本方法来自CSDN博客,转载请标明出处:http://blog.csdn.net/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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: