本人学习用asp.net做网站时间并不长,在学习过程中,分页成为一个很大的问题,asp.net自己的组件分布的视觉效果总觉的差的很多,而且使用起来并不是很顺手(也许是我技术太差了),所以我选择在网上找专门的分页组件,这里选用了AspNetPager,这个一位陕西的程序员开发并封装成Dll文件,这个分页组件使用起来很方便,并集成了存储过程生成工具,对我这个新手来说很有帮助的.尽管这个组件使用很简单,不过如果新手开始用这个组件的话可能还是要花上一定时间(我花了半天),现我向大家详细介绍这个组件的使用方法:
一、用到的组件参数
RecordCount 总记录数
StartRecordIndex 开始记录编号(用于存储过程中)
EndRecordIndex结束记录编号(用于存储过程中)
二、使用方法
在Page_Load中使用。
例:
public partial class Default4 : System.Web.UI.Page
{
DataOperation mydo = new DataOperation();
if (!IsPostBack) //如果不是回传就执行,用于初始化
{
DataOperation mydo1 = new DataOperation(); //实例化数据库连接
string sqlstr1 = "exec fy 0,0,1"; //定义Sql语句,使用了fy存储函数
//初始化RecordCount,mydo1.GetExeSqlCount返回一个int
AspNetPager1.RecordCount = mydo1.GetExeSqlCount(sqlstr1);
//定义Sql语句,使用了fy存储函数
string sqlstr = "exec fy " + AspNetPager1.StartRecordIndex + "," + AspNetPager1.EndRecordIndex + ",0";
//给GridView1指定一数据源, mydo.GetExeSqlDataTable返回一个DataTable
this.GridView1.DataSource = mydo.GetExeSqlDataTable(sqlstr);
this.GridView1.DataBind();
}
protected void AspNetPager1_ PageChanged (object sender, EventArgs e)
{// AspNetPager1组件的PageChanged事件
string sqlstr = "exec fy " + AspNetPager1.StartRecordIndex + "," + AspNetPager1.EndRecordIndex + ",0";
this.GridView1.DataSource = mydo.GetExeSqlDataTable(sqlstr);
this.GridView1.DataBind();
}
}
这个组件中还有很多其他的功能,大家在使用过程就会发现,设置是可视化的,这里我就不多说了,下面是本文中用到的存储过程,相信对大家理解上面的代码有一定帮助,本文中也一起附上。
存储过程:
ALTER procedure fy
(@startIndex int,
@endIndex int,
@docount int)
as
set nocount on
if(@docount=1)
select count(*) from Xt_Article
else
begin
declare @indextable table(id int identity(1,1),nid int)
set rowcount @endIndex
insert into @indextable(nid) select id from Xt_Article order by id asc
select * from Xt_Article O,@indextable t where O.id=t.nid
and t.id between @startIndex and @endIndex order by t.id
end
set nocount off