最近在做数据管理系统的开发工作,遇到数据表中记录过多的问题,虽然asp.net中已有分页控件,但是非常简陋。AspNetPager是一款非常强大的分页控件,它的介绍我这里就不在赘述了,网上有很多它的介绍资料。但在学习使用它的过程中,网上有一些资料非常复杂,而且源代码没有给出,对熟练使用它造成了困扰。经过一个下午的摸索,终于能够成功使用。下面就写出运用AspNetPager控件的详细步骤,希望对新手有所帮助。
1、下载AspNetPager的dll文件,解压后添加到项目的bin目录中,并添加引用;
2、把控件添加到项目中
<webdiyer:AspNetPager id="AspNetPager1" runat="server" Width="500px"
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页"
Height="40px" ShowInputBox="Always" TextAfterInputBox="页"
TextBeforeInputBox="跳转到第" AlwaysShow="True"
onpagechanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
之后会出现创建控件错误,那是因为还没有对该控件进行注册,在aspx文件顶部加上:
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
3、AspNetPager最重要的是RecrdCount属性和PageChanged事件
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindData();
}
private void BindData( )
{
string sql = "select * from MM_talbeSample";
this.AspNetPager1.PageSize = 15;//设置每页显示15条记录
this.AspNetPager1.RecordCount = CountRecord();//获得表中总的记录数
DataSet ds = CreatePage(sql, this.AspNetPager1.CurrentPageIndex, this.AspNetPager1.PageSize);;
this.tableContent.DataSource = ds;
this.tableContent.DataBind();
}
protected int CountRecord()
{
int pageNum = 0;
string sql = "select COUNT(*) from MM_tableSample ";
DataTable dt = SqlHelper.getDataTable(sql)//返回一个只有一行一列的表
pageNum = Convert.ToInt16(dt.Rows[0].ItemArray[0]);
return pageNum;
}
public DataSet CreatePage(string sql, int currentPage, int pagesize)
{
SqlDataAdapter ada = new SqlDataAdapter(sql, SqlHelper.SqlConnectionStr);// SqlHelper.SqlConnectionStr为定义的sqlserver连接字符串
DataSet ds = new DataSet();
int startRow = (currentPage - 1) * pagesize;
ada.Fill(ds, startRow, pagesize, "table");;
return ds;
}
上面的代码除了数据库操作以外,算是比较详细的了,之后就大功告成了。