【介绍】
AspNetPage针对.NET分页控件的不足,提出了与众不同的解决.NET分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方。
【实现】
一、下载AspNetPager分页控件
点击下载
二、添加控件
-
先把下载的文件放在一个比较容易找到的地方
-
在工具箱中右击——选择项——com组件——浏览——找到下载好的AspNetPager.dll文件——确定
-
在Web层添加引用——(左侧)浏览——(右下角)浏览——AspNetPager.dll
文件——确定
三、前台显示代码Newsmanager.aspx
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%"
NumericButtonCount="6" UrlPaging="true"
CustomInfoHTML="总计%RecordCount%条记录,共%PageCount%页"
ShowCustomInfoSection="left"
FirstPageText="首页" LastPageText="末页" NextPageText="下页" PrevPageText="上页"
Font-Names="Arial" BackColor="#F8B500" AlwaysShow="true" ShowInputBox="Always"
SubmitButtonStyle="botton" OnPageChanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
四、Newsmanager.aspx.cs代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
AspNetPager1.RecordCount = new NewsManager().SelectAll().Rows.Count;
}
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindGrid();
}
private void BindNews()
{
repNews.DataSource = new NewsManager().FenyeSelect(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
repNews.DataBind();
}
五、D层代码
想更加清楚的了解row_number()排序函数的请点击下面链接
ROW_NUMBER() 排序函数
public DataTable FenyeSelect(int startIndex,int endIndex)
{
string sql = "with template as (select ROW_NUMBER() over(order by ID desc) as 行号,*from News) select * from template where 行号 between @startIndex and @endIndex";
SqlParameter[] sqlParameters = { new SqlParameter("@startIndex", startIndex),
new SqlParameter("@endIndex",endIndex)};
DataTable dt = new SQLHelper().ExecuteQuery(sql, sqlParameters, CommandType.Text);
return dt;
}
六、B层代码
public DataTable FenyeSelect(int startIndex,int endIndex)
{
return nado.FenyeSelect(startIndex, endIndex);
}