DataGridView 控件实现翻页效果 - (第二十七讲)
视频讲解如下:
CSDN源码下载
https://download.csdn.net/download/gs1069405343/20086393
网盘下载,提取码:gesr
https://pan.baidu.com/s/1jv9hDesiPbmB4smeVluVqg
这里给大家讲解一下DataGridView控件如何实现翻页效果
效果如下
using mysql.MySql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace mysql
{
public partial class Form1 : Form
{
MyDbContext mydb = new MyDbContext();
private int PagesNum = 0; // 当前第几页
private int PagesMax = 1; // 最大页数
private int MaxNum = 10; // 每页显示行数
public Form1()
{
InitializeComponent();
InitMySql();
}
#region 第一讲内容:数据库操作
/// <summary>
/// 初始化数据库
/// </summary>
private void InitMySql()
{
try
{
mydb.Database.EnsureCreated();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
/// <summary>
/// 读取数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
//List<data1> datas = mydb.tb_data1.ToList(); // 读取tb_data1表中的数据到datas
//dataGridView1.Rows.Clear(); // 清除控件dataGridView1中的行数据
//foreach (data1 d in datas)
//{
// int addr = 0;
// int index = dataGridView1.Rows.Add();
// dataGridView1.Rows[index].Cells[addr++].Value = d.id;
// dataGridView1.Rows[index].Cells[addr++].Value = d.text;
//}
double num = mydb.tb_data1.ToList().Count();
if ((num % MaxNum) == 0) PagesMax = (int)(num / MaxNum);
else PagesMax = (int)Math.Floor(num / MaxNum) + 1;
ShowData(PagesNum, MaxNum);
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[Obsolete]
private void button2_Click(object sender, EventArgs e)
{
string text = textBox1.Text;
data1 a = new data1() { text = text };
mydb.tb_data1.Add(a);
mydb.SaveChanges();
button1_Click(null, null);
}
#endregion
#region 翻页功能
//首页
private void button6_Click(object sender, EventArgs e)
{
PagesNum = 0;
ShowData(PagesNum, MaxNum);
}
// 上一页
private void button8_Click(object sender, EventArgs e)
{
PagesNum--;
if (PagesNum <= 0) PagesNum = 0;
ShowData(PagesNum, MaxNum);
}
// 下一页
private void button7_Click(object sender, EventArgs e)
{
PagesNum++;
if (PagesNum >= PagesMax) PagesNum = PagesMax - 1;
ShowData(PagesNum, MaxNum);
}
//尾页
private void button5_Click(object sender, EventArgs e)
{
PagesNum = PagesMax - 1;
ShowData(PagesNum, MaxNum);
}
// 显示数据
private void ShowData(int pages, int num)
{
try
{
label3.Text = (pages + 1).ToString() + "/" + PagesMax.ToString();
List<data1> imgs = mydb.tb_data1.ToList().Skip(pages * num).Take(num).ToList();
if (imgs.Count > 0)
{
dataGridView1.Rows.Clear();
int line = pages * num;
foreach (data1 d in imgs)
{
line = line + 1;
int index = this.dataGridView1.Rows.Add();
this.dataGridView1.Rows[index].Cells[0].Value = line;
this.dataGridView1.Rows[index].Cells[1].Value = d.id;
this.dataGridView1.Rows[index].Cells[2].Value = d.text;
}
}
}
catch { }
}
#endregion
}
}