在ASP.Net With C# 中使用 DataGrid 控件分页展示数据
2006-04-21 14:25
951 查看
在ASP.Net With C# 中使用 DataGrid 控件分页展示数据。
问题一:自动显示 当前页数和总页数
也曾经看到能实现相关功能的代码,但是是使用 Visual Studio.NET 开发环境开发的,代码很长,我的能力低看不懂,所以就自己琢磨了一个:
得到当前页数并显示数据
void BindGrid()
{
SqlConnection Conn;
Conn = new SqlConnection("连接数据库");
String strSQL = "SELECT * FROM 表名 WHERE 条件 ";
SqlCommand Comm = new SqlCommand(strSQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
DataSet ds = new DataSet();
Conn.Open();
da.Fill(ds,"字段");
dg.DataSource = ds.Tables["字段"].DefaultView;
dg.DataBind();
Conn.Close();
//因为是从第零页开始的,为了符合习惯所以加1
page= dg.CurrentPageIndex+1;
ttpage();
Label1.Text="第"+page.ToString()+"页"+ " 共"+tpage.ToString()+"页";
}
void ttpage()
{
//显示总页数,每页10条记录
string SQL = "SELECT count(*) as one FROM 表名 WHERE 条件 ";
SqlConnection Conn;
Conn = 连接字符串
Conn.Open();
SqlCommand Comm = new SqlCommand(SQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
SqlDataReader dr=Comm.ExecuteReader();
if(dr.Read())
{
string x=dr["one"].ToString();
//得到总记录数
shu=Convert.ToInt32(x);
}
Conn.Close();
//如果能被整除
if ((shu%10)==0)
{
//总页数
tpage=shu/10;
}
else
{
//不满一页的算一页
tpage=shu/10+1;
}
}
问题2:用 DataGrid进行分页处理后,删除最后一行数据发生错误
原因:函数找不到当前页的索引,因为当前页已经不存在
解决办法:
//如果当前索引大于0
if (dg.CurrentPageIndex > 0)
{
//得到当前最大记录数shu
//代码略*****************************************
//如果记录数能被整除,说明当前索引页已经不存在,减一得到前一页索引,显示上一页内容
if ((shu%10)==0)
{
dg.CurrentPageIndex -=1;}
//显示数据
BindGrid();
}
else
{
BindGrid();
}
问题一:自动显示 当前页数和总页数
也曾经看到能实现相关功能的代码,但是是使用 Visual Studio.NET 开发环境开发的,代码很长,我的能力低看不懂,所以就自己琢磨了一个:
得到当前页数并显示数据
void BindGrid()
{
SqlConnection Conn;
Conn = new SqlConnection("连接数据库");
String strSQL = "SELECT * FROM 表名 WHERE 条件 ";
SqlCommand Comm = new SqlCommand(strSQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
DataSet ds = new DataSet();
Conn.Open();
da.Fill(ds,"字段");
dg.DataSource = ds.Tables["字段"].DefaultView;
dg.DataBind();
Conn.Close();
//因为是从第零页开始的,为了符合习惯所以加1
page= dg.CurrentPageIndex+1;
ttpage();
Label1.Text="第"+page.ToString()+"页"+ " 共"+tpage.ToString()+"页";
}
void ttpage()
{
//显示总页数,每页10条记录
string SQL = "SELECT count(*) as one FROM 表名 WHERE 条件 ";
SqlConnection Conn;
Conn = 连接字符串
Conn.Open();
SqlCommand Comm = new SqlCommand(SQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
SqlDataReader dr=Comm.ExecuteReader();
if(dr.Read())
{
string x=dr["one"].ToString();
//得到总记录数
shu=Convert.ToInt32(x);
}
Conn.Close();
//如果能被整除
if ((shu%10)==0)
{
//总页数
tpage=shu/10;
}
else
{
//不满一页的算一页
tpage=shu/10+1;
}
}
问题2:用 DataGrid进行分页处理后,删除最后一行数据发生错误
原因:函数找不到当前页的索引,因为当前页已经不存在
解决办法:
//如果当前索引大于0
if (dg.CurrentPageIndex > 0)
{
//得到当前最大记录数shu
//代码略*****************************************
//如果记录数能被整除,说明当前索引页已经不存在,减一得到前一页索引,显示上一页内容
if ((shu%10)==0)
{
dg.CurrentPageIndex -=1;}
//显示数据
BindGrid();
}
else
{
BindGrid();
}
相关文章推荐
- [参考]一个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程
- asp.net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程。
- asp.net中使用分页控件,并绑定数据到GridView或Repeater
- c# asp.net 自己写的分页 没有使用控件原始分页
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- ASP.Net中数据展示控件的嵌套使用示例
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页?
- asp.net 中使用EasyUI Datagrid 加载动态数据分页查询
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页(转载)
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- ASP.NET 使用DataList控件实现分页显示数据
- ASP.NET 数据列表控件的分页总结(二)---------使用存储过程分页
- ASP.NET使用EasyUI-DataGrid + ashx + JQuery Ajax:实现数据的增删查改,查询和分页!
- 摘:如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
- ASP.NET中DataList控件和AspNetPager控件的组合使用并实现分页