下面选用的是新闻发布系统里用的代码。

SQL 存储过程:

CREATE PROCEDURE procNewsSelectByPager
@startRecordIndex int,
@endRecordIndex int
AS
BEGIN
select * from
(select row_number() over (order by id) as row, * from news) temp
where temp.row between @startRecordIndex and @endRecordIndex
END
GO

数据访问层:

//SQLHelper
public DataTable ExecuteQuery(string cmdText,SqlParameter[] paras,CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, Getconn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
} //NewsDAO
public DataTable SelectByPager(int startRecordIndex, int endRecordIndex)
{
DataTable dt = new DataTable();
SqlParameter[] para = new SqlParameter[] {
new SqlParameter("@startRecordIndex",startRecordIndex),
new SqlParameter("@endRecordIndex",endRecordIndex)
};
dt = sqlhelper.ExecuteQuery("procNewsSelectByPager",para, CommandType.StoredProcedure);
return dt;
}

UI层:

<!-- 前台代码 -->
<div>
<table>
<tr><th>ID</th>
<th>新闻标题</th>
</tr>
<asp:Repeater ID="repTest" runat="server">
<ItemTemplate>
<tr>
<td><%# Eval("id") %></td>
<td><a href='../Newscontent.aspx?newsId=<%# Eval("id") %>' target="_blank" title='<%# Eval("title") %>' ><%# StringTruncat(Eval("title").ToString(),21,"...") %></a></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<webdiyer:AspNetPager ID="anp" FirstPageText="首页" LastPageText="尾页"
PrevPageText="上一页" NextPageText="下一页" SubmitButtonText="Go"
TextBeforePageIndexBox="转到" TextAfterPageIndexBox="页" PageIndexBoxType="TextBox" ShowPageIndexBox="Always"
CustomInfoHTML="共&nbsp;<font color='#FF0000'>%PageCount%</font>&nbsp;页,第&nbsp;<font color='#FF0000'>%CurrentPageIndex%</font>&nbsp;页"
Font-Size="14px" ShowCustomInfoSection="Left" CustomInfoSectionWidth="25%" PagingButtonSpacing="8px"
runat="server" onpagechanged="anp_PageChanged">
</webdiyer:AspNetPager>
</div>
//后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
} protected void anp_PageChanged(object sender, EventArgs e)
{
Bind();
} private void Bind()
{
NewsManager nm = new NewsManager();
// 设置需要分页的所有数据的总数
anp.RecordCount = nm.SelectCount();
// 设置 AspNetPager 每页显示的数
anp.PageSize = ;
// 取出当前页的新闻
DataTable dt = nm.SelectByPager(anp.StartRecordIndex, anp.EndRecordIndex);
PagedDataSource pds = new PagedDataSource();
// 设置 页面最多能显示的数量
pds.PageSize = anp.PageSize;
// 是否启用分页
pds.AllowPaging = true;
// 绑定数据源
pds.DataSource = dt.DefaultView;
repTest.DataSource = pds;
repTest.DataBind();
}

关于 AspNetPager 控件的使用:

anp.RecordCount 的设置应在 anp.EndRecordIndex 的使用之前,例:

anp.RecordCount = ;
anp.PageSize = ;
// 自定义的 取出当前页面要显示的数据 的方法
nm.SelectByPager(anp.StartRecordIndex,anp.EndRecordIndex);

AspNetPager 和 PagedDataSource 的 PageSize 属性(每页显示的项数)

当 anp.PageSize < pds.PageSize 时,页面显示的是 anp.PageSize 设置的数;

当 anp.PageSize > pds.PageSize 时,页面显示的是 pds.PageSize 设置的数;

(个人理解)anp.PageSize 是控件每页显示的数,pds.PageSize 是页面最多能显示的数。

AspNetPager 的使用的更多相关文章

  1. AspNetPager分页控件样式的使用

    分页是Web应用程序中最常用到的功能之一,AspNetPager  简单实用,应用到项目后台中,棒极了! 自定义样式: <style type="text/css"> ...

  2. AspNetPager 多条件分页查询

    AspNetPager 这个分页控件一般做后台基本都知道的,我就不多说了(说明与下载链接:http://www.webdiyer.com/Controls/AspNetPager),嘿嘿!其实我也是刚 ...

  3. AspNetPager分页控件的使用

    下面所记得东西仅仅是使用方法,详细知识点请看链接:http://www.webdiyer.com/Controls/AspNetPager/Downloads 首先:从网站上下载并安装控件 下载地址: ...

  4. AspNetPager分页控件配置

    AspNetPager是asp.net中常用的分页控件,下载AspNetPager.dll,添加引用,在工具栏就可以看到AspNetPager控件: 拖过来之后,设置如下属性: <webdiye ...

  5. 修改AspNetPager的CustomInfoHTML,添加自定义样式

    AspNetPager控件有一个属性叫CustomInfoHTML,可以把它写在前台页面,如下: <webdiyer:AspNetPager ID=" HorizontalAlign= ...

  6. AspNetPager控件分页使用方法

    AspNetPager控件官方下载地址:http://www.webdiyer.com/aspnetpager/ 把控件加到项目中(添加自定义控件的方法),并把它拖放到页面上 <asp:Scri ...

  7. 未能加载文件或程序集“AspNetPager”或它的某一个依赖项。参数错误(转)

    未能加载文件或程序集“AspNetPager”或它的某一个依赖项.参数错误. 看你的的开发框架用的是多少的2.0, 3.0, 3.5, 4.0 那么删除的框架的文件夹也相对应的变化   删除 C:\W ...

  8. AspNetPager控件报错误: Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$Aspnetpager1_input问题解决[摘]

    高版本IE,如IE10或者IE11在浏览页面时出现错误: Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$ ...

  9. 如何使用 aspnetpager

    <%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix=" ...

  10. AspNetPager分页控件

    AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码:1.首先到www.we ...

随机推荐

  1. 50. Pow(x, n)

    题目: Implement pow(x, n). 链接: http://leetcode.com/problems/powx-n/ 题解: 使用二分法求实数幂,假如不建立临时变量halfPow,直接r ...

  2. IIS Web服务器支持高并发设置

    适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows ...

  3. Hibernate HQL查询的参数绑定

    参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: ...

  4. Java语言基本语法

    Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成 ...

  5. [HDOJ1698]Just a Hook(线段树,区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 陈题,更新后查询所有叶节点的和.撸一遍模版,形成自己的风格. #include <algo ...

  6. 面试题_1_to_16_多线程、并发及线程的基础问题

    多线程.并发及线程的基础问题 1)Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引 ...

  7. 1033. Labyrinth(dfs)

    1033 简单dfs 有一点小小的坑 就是图可能不连通 所以要从左上和右下都搜一下 加起来 从讨论里看到的 讨论里看到一句好无奈的回复 “可不可以用中文呀...” #include <iostr ...

  8. HDU 3492 (直线与所有线段相交) Segment

    题意: 给出n个线段,判断是否存在一条直线使得所有线段在直线上的射影的交非空. 分析: 如果我们找到一条与所有线段相交的直线,然后做一条与该直线垂直的直线,这些线段在直线上的射影就一定包含这个垂足. ...

  9. [Sciter系列] MFC下的Sciter–2.Sciter中的事件,tiscript,语法

    [Sciter系列] MFC下的Sciter–2.Sciter中的事件,tiscript,CSS部分自觉学习,重点说明Tiscript部分的常见语法和事件用法. 本系列文章的目的就是一步步构建出一个功 ...

  10. Oracle中job的使用详解

    我们在项目开发中,常常会有一些复杂的业务逻辑.使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执 ...