dataGridView是常用的表格控件,实现分页的方式也有很多种,例如直接使用sql语言,配合存储方式,直接读取某一页的内容,大家如果有兴趣的话,下次整理出来与大家分享,本次,采用另一种方式,即控制表格在接收所有数据后,不再使用滚轮展示,而是通过控制定位行来实现。
使用该方法需要注意的是,大数据量还是不建议使用,因为大数据量会导致表格UI卡顿,还是采用sql查询的方式较为可靠。
下面就简单的使用控件分页的方式与大家分享。
dataGridView1.ScrollBars =ScrollBars.None;
如果表格是固定大小,此步骤可省略,直接用行数进行下面的操作即可,此方法针对表格大小可调整自适应的时候,通过计算获取能显示的最大行。
int rowCount;//每一页多少行
int maxCount;//所有页数
private void uc_table_Resize(object sender, EventArgs e)
{
this.Invalidate();
rowCount = (dataGridView1.Height - dataGridView1.ColumnHeadersHeight) / dataGridView1.RowTemplate.Height;
maxCount = (int)Math.Ceiling(dataGridView1.Rows.Count / rowCount * 1.0);
}
以上方法是针对表格内容还没有添加,如果表格已经有内容,是无法通过模板(RowTemplate)修改高度的。
那可以使用:
(1)ColumnHeadersHeaderSize属性设为 EnableResizing
(2)ColumnHeadersHeader 的值改为 需要的高度
(3)RowTemplate属性下的Height,把值也设置为 需要的高度
3.控制表格定位
使用FirstDisplayedScrollingRowIndex属性调整显示内容。
dataGridView1.FirstDisplayedScrollingRowIndex = 0;//定位到第一页
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.Count- rowCount;//定位到最后一页
例如:
以上就是简单利用dataGridView的分页显示,总结来说就是计算每一页显示多少行,计算dataGridView每次定位到哪里。