专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » datagridview分页:C#实现DataGridView分页功能 »正文

datagridview分页:C#实现DataGridView分页功能

来源: 发布时间:星期三, 2008年12月24日 浏览:35次 评论:0




从界面可以看到在设计时需要个DataGridView、BindingNavigate、BindingSourceControl控件分别命名为dgvInfo、bdnInfo、bdsInfo
在bdnInfoControl控件中添加几个用于选择页面lable和botton如上图所示
设计时:
1、定义几个所需公有成员:


pageSize = 0; //每页显示行数
nMax = 0; //总记录数
pageCount = 0; //页数=总记录数/每页显示行数
pageCurrent = 0; //当前页号
nCurrent = 0; //当前记录行
DataSet ds = DataSet;




DataTable dtInfo = DataTable;

2、在窗体载入事件中从数据源读取记录到DataTable中:



strConn = "SERVER=www.dow88.cn;DATABASE=NORTHWIND;UID=SA;PWD=ULTRATEL"; //数据库连接
SqlConnection conn = SqlConnection(strConn);
conn.Open;
strSql = "SELECT * FROM CUSTOMERS";
SqlDataAdapter sda = SqlDataAdapter(strSql,conn);
sda.Fill(ds,"ds");
conn.Close;


dtInfo = ds.Tables[0];
InitDataSet;


3、用当前页面数据填充DataGridView

private void InitDataSet
...{
pageSize = 20; //设置页面行数
nMax = dtInfo.Rows.Count;

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

((nMax % pageSize) > 0) pageCount;

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


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

LoadData;
}

private void LoadData
...{
nStartPos = 0; //当前页面开始记录行
nEndPos = 0; //当前页面结束记录行

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

(pageCurrent pageCount)
nEndPos = nMax;

nEndPos = pageSize * pageCurrent;

nStartPos = nCurrent;

lblPageCount.Text = pageCount.;
txtCurrentPage.Text = Convert.(pageCurrent);

//从元数据源复制记录行
for ( i = nStartPos; i < nEndPos; i)
...{
dtTemp.ImportRow(dtInfo.Rows[i]);
nCurrent;
}


bdsInfo.DataSource = dtTemp;
bdnInfo.BindingSource = bdsInfo;
dgvInfo.DataSource = bdsInfo;
}
4、菜单响应事件:

private void bdnInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
...{
(e.ClickedItem.Text "关闭")
...{
this.Close;
}
(e.ClickedItem.Text "上页") ="Vpl340">
...{
pageCurrent--;
(pageCurrent <= 0)
...{
MessageBox.Show("已经是第请点击“下页”查看!");
;
}

...{

nCurrent = pageSize * (pageCurrent - 1);
}

LoadData;
}
(e.ClickedItem.Text "下页")
...{
pageCurrent;
(pageCurrent > pageCount)
...{
MessageBox.Show("已经是最后请点击“上页”查看!");


;
}

...{
nCurrent=pageSize*(pageCurrent-1);
}
LoadData;
}
}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: