DataGridView翻页(WinForm)
思想:
将DataGridView界面设置成显示固定条数的大小,比如要显示10条数据,就将DataGridView设成只能显示10条数据的大小。根据设置FirstDisplayedScrollingRowIndex属性,实现翻页效果。(实际上,这种实现方式只是将数据隐藏了,翻页时将要显示的数据放到第一行的位置,让人看起来就像是翻页了……)
FirstDisplayedScrollingRowIndex属性:获取或设置某一行的索引,该行是显示在 DataGridView 上的第一行。
实现:
代码
private void Form1_Load(object sender, EventArgs e)
{
int intMod, dgr;
dataGridView2.ScrollBars = System.Windows.Forms.ScrollBars.None;//先让垂直滚动条消失
dgr = dataGridView2.RowCount-1;//取出DGV的行数,为什么要减一是因为它总是多出一行给你编辑的所以那行也占用一行的空间
if (dgr %10 == 0) //进行取模
{ intMod = 0; }
else
{
intMod = 1;
}
for (int i = 1; i <= dgr / 10+intMod; i++) //主要时这个for循环将表一共分为几页添加到comboBox
{
comboBox2.Items.Add("第" + i + "页");
}
comboBox2.SelectedIndex = 0; //默认选中第一个
}
然后在comboBox1_SelectedValueChanged事件里面添加下面代码
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
dataGridView2.FirstDisplayedScrollingRowIndex = comboBox2.SelectedIndex * 10;
}
{
int intMod, dgr;
dataGridView2.ScrollBars = System.Windows.Forms.ScrollBars.None;//先让垂直滚动条消失
dgr = dataGridView2.RowCount-1;//取出DGV的行数,为什么要减一是因为它总是多出一行给你编辑的所以那行也占用一行的空间
if (dgr %10 == 0) //进行取模
{ intMod = 0; }
else
{
intMod = 1;
}
for (int i = 1; i <= dgr / 10+intMod; i++) //主要时这个for循环将表一共分为几页添加到comboBox
{
comboBox2.Items.Add("第" + i + "页");
}
comboBox2.SelectedIndex = 0; //默认选中第一个
}
然后在comboBox1_SelectedValueChanged事件里面添加下面代码
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
dataGridView2.FirstDisplayedScrollingRowIndex = comboBox2.SelectedIndex * 10;
}
以上就让DGV以一页十行的效果来显示了
网上找到的方法,同时也可以使用存储过程分页来实现..本人不太熟悉,所以等一会熟悉的时候补上=,=