c#在winform中用DataGridView实现分页效果
2013-03-28 17:52
519 查看
public partial class Form11 : Form
{
public Form11()
{
InitializeComponent();
}
private int Inum = 1; //行号,规定其索引初始值为1
int pagesize = 4;
int allCount =0;
int pagecount = 0;
private void Form11_Load(object sender, EventArgs e)
{
using(SqlConnection connection = new SqlConnection("server=数服务器名称;uid=sa;pwd=sa;database=数据库名"))
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_Land", connection);
DataTable dt = new DataTable();
da.Fill(dt);
allCount = dt.Rows.Count; //获取数据表中记录的个数
pagecount = allCount % pagesize; //页数 = 总数/显示的行数
//只能显示一页,判断是否是整除
if (pagecount == 0)
{
pagecount =allCount / pagesize;
}
else
{
pagecount = allCount / pagesize + 1;
}
this.label1.Text = "共" + pagecount.ToString() + "页";
show(1,4); //分页显示记录
// this.label2.Text
= "当前第" + Inum.ToString() + "页";
}
}
/// <summary>
/// 分页显示数据表中的信息
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
private void show(int start,int end)
{
SqlConnection connection = new SqlConnection("server=服务器名称;uid=sa;pwd=sa;database=数据库名称");
SqlDataAdapter das = new SqlDataAdapter("select
top "+pagesize+" * from tb_Land where Id not in (select top "+pagesize*(Inum-1)+" Id from tb_Land)",connection); //sql语句
DataSet ds = new DataSet();
//显示指定范围的记录
das.Fill(ds,"one");
this.dataGridView1.DataSource = ds.Tables["one"].DefaultView; //绑定显示数据
ds = null;
}
//第一页
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Inum = 1;
show(Inum, pagesize);
}
//末尾页
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Inum = pagecount;
show(Inum-1, pagesize);
}
//下一页
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Inum++;
if (Inum <= pagesize) //如果没有超出记录行数
{
show(Inum, pagesize);
}
else
{
MessageBox.Show("现已是最后一页记录");
Inum = pagecount-1;
return;
}
}
//上一页
private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Inum--;
if (Inum > 0) //如果当前不是首记录
{
show(Inum, pagesize); //显示上一页记录
}
else
{
MessageBox.Show("现已是第一页记录");
Inum = 1;
return;
}
}
}
}
当前显示的页数,实现的有点小问题。可能有些细节上的小问题,希望大家多提建议!
相关文章推荐
- c#在winform中用DataGridView实现分页效果
- C# Winform DataGridView 公共分页实现
- C# Winform DataGridView分页功能的实现
- C#Winform:DataGridView 简单分页实现
- winform基础篇之控件bindingNavigator、BindingSource、datagridview实现分页效果
- C#Winform基础 datagridview控件一选选一整行的效果实现时,取消第一行默认被选取的副效果
- C#Winform基础 datagridview控件一选选一整行的效果实现时,取消第一行默认被选取的副效果
- C# Winform DataGridView 公共分页实现
- C# Winform DataGridView 公共分页实现
- C# Winform DataGridView分页功能的实现
- C# Winform DataGridView分页功能的实现
- WinForm下编写分页控件,实现DataGridView的分页效果
- C# Winform DataGridView 公共分页实现
- C# Winform DataGridView 公共分页实现
- C#实现winform渐变效果的方法
- c#实现Winform中的分页
- WinForm中DataGridView控件通过复选框实现多条记录的删除 c#2005
- 使用C#实现WinForm窗体的动画效果
- c# winform中实现framset的效果
- 『转』说说DataGridView在winform的分页效果