- 基本功能
- 分页按钮属性效果
- 使用自定义信息区
- Repeater分页
- DataList分页
- Url分页
- Url重写
- Url逆向分页
- n层结构应用
- 使用Xml文件数据源
- 图片浏览示例
- AccessDataSource分页
- SqlDataSource分页
- ObjectDataSource分页
- 自定义数据呈现逻辑
- 使用图片按钮
- 查询结果分页
- 查询结果Url分页
- 克隆属性及事件
- 页索引输入/选择框
- 自定义导航按钮
- 在用户控件中实现分页
- UpdatePanel支持
- 设置当前页按钮位置
- 使用Table布局
- 自定义提交按钮图片
- 从Url中获取每页显示记录数
- 应用CSS样式
- 使用GoToPage方法
- 分页导航元素布局
- 类:
- 属性:
- AlwaysShow
- AlwaysShowFirstLastPageNumber
- BackImageUrl
- ButtonImageAlign
- ButtonImageExtension
- ButtonImageNameExtension
- CloneFrom
- CpiButtonImageNameExtension
- CssClass
- CurrentPageButtonClass
- CurrentPageButtonPosition
- CurrentPageButtonStyle
- CurrentPageButtonTextFormatString
- CurrentPageIndex
- CustomInfoClass
- CustomInfoHTML
- CustomInfoSectionWidth
- CustomInfoStyle
- CustomInfoTextAlign
- DisabledButtonImageNameExtension
- EnableTheming
- EnableUrlRewriting
- EndRecordIndex
- FirstPageText
- FirstPageUrlRewritePattern
- HorizontalAlign
- ImagePath
- InvalidPageIndexErrorMessage
- LastPageText
- LayoutType
- MoreButtonType
- NavigationButtonsPosition
- NavigationButtonType
- NavigationToolTipTextFormatString
- NextPageText
- NumericButtonCount
- NumericButtonTextFormatString
- NumericButtonType
- PageCount
- PageIndexBoxClass
- PageIndexBoxStyle
- PageIndexBoxType
- PageIndexOutOfRangeErrorMessage
- PageSize
- PagesRemain
- PagingButtonLayoutType
- PagingButtonSpacing
- PagingButtonType
- PrevPageText
- RecordCount
- RecordsRemain
- ReverseUrlPageIndex
- ShowBoxThreshold
- ShowCustomInfoSection
- ShowDisabledButtons
- ShowFirstLast
- ShowMoreButtons
- ShowNavigationToolTip
- ShowPageIndex
- ShowPageIndexBox
- ShowPrevNext
- SkinID
- StartRecordIndex
- SubmitButtonClass
- SubmitButtonImageUrl
- SubmitButtonStyle
- SubmitButtonText
- TextAfterPageIndexBox
- TextBeforePageIndexBox
- UrlPageIndexName
- UrlPageSizeName
- UrlPaging
- UrlPagingTarget
- UrlRewritePattern
- 方法:
- 事件:
- 枚举:
- 委托:
AspNetPager 类
C# 语法:
public class AspNetPager:WebControl, INamingContainer, IPostBackEventHandler, IPostBackDataHandler
属性:
| 名称 | 说明 |
|---|---|
| AlwaysShow | 获取或设置一个值,该值指定是否总是显示AspNetPager分页按件,即使要分页的数据只有一页。 |
| AlwaysShowFirstLastPageNumber | 获取或设置一个值,该值指定是否总是显示第一页和最后一页数字页索引按钮。 |
| BackImageUrl | 获取或设置AspNetPager分页控件背景图像的 URL。 |
| ButtonImageAlign | 指定当使用图片按钮时,图片的对齐方式。 |
| ButtonImageExtension | 获取或设置当使用图片按钮时,图片的类型,如gif或jpg,该值即图片文件的后缀名。 |
| ButtonImageNameExtension | 获取或设置自定义图片文件名的后缀字符串,以区分不同类型的按钮图片。 |
| CloneFrom | 获取或设置要克隆属性值及事件处理程序的另一个 AspNetPager 的ID。 |
| CpiButtonImageNameExtension | 获取或设置当前页索引按钮的图片名后缀。 |
| CurrentPageButtonClass | 获取或设置AspNetPager分页控件当前页导航按钮的级联样式表 (CSS) 类。 |
| CurrentPageButtonPosition | 当前页数字按钮在所有数字分页按钮中的位置,可选值为:Beginning(最前)、End(最后)、Center(居中)和Fixed(默认固定) |
| CurrentPageButtonStyle | 获取或设置AspNetPager分页控件当前页导航按钮的CSS样式文本。 |
| CurrentPageButtonTextFormatString | 获取或设置当前页数值导航按钮上文本的显示格式。 |
| CurrentPageIndex | 获取或设置当前显示页的索引。 |
| CustomInfoClass | 获取或设置应用于用户自定义信息区的级联样式表类名。 |
| CustomInfoHTML | 获取或设置在显示在用户自定义信息区的用户自定义HTML文本内容。 |
| CustomInfoSectionWidth | 获取或设置用户自定义信息区的宽度。 |
| CustomInfoStyle | 获取或设置应用于用户自定义信息区的CSS样式文本。 |
| CustomInfoTextAlign | 获取或设置用户自定义信息区文本的对齐方式。 |
| DisabledButtonImageNameExtension | 获取或设置被禁用的分页元素使用的图片文件名后缀字符串,以便被禁用和未禁用的按钮可以使用不同的图片。 |
| EnableTheming | 获取或设置一个值,该值指定是否为控件应用主题。 |
| EnableUrlRewriting | 获取或设置一个值,该值指定是否启用URL重写。 |
| EndRecordIndex | 当前页最后一条记录的索引。 |
| FirstLastButtonsClass | 获取或设置AspNetPager分页控件首页和尾页导航按钮的级联样式表 (CSS) 类。 |
| FirstLastButtonsStyle | 获取或设置AspNetPager分页控件首页和尾页导航按钮的CSS样式文本。 |
| FirstPageText | 获取或设置为第一页按钮显示的文本。 |
| FirstPageUrlRewritePattern | 获取或设置首页的URL重写格式,用于首页Url的SEO优化。 |
| HorizontalAlign | 获取或设置分页按钮的水平对齐方式。 |
| ImagePath | 获取或设置当使用图片按钮时,图片文件的路径。 |
| InvalidPageIndexErrorMessage | 获取或设置当用户输入无效的页索引(负值或非数字)时在客户端显示的错误信息。 |
| LastPageText | 获取或设置为最后一页按钮显示的文本。 |
| LayoutType | 分页控件自定义信息区和分页导航区使用的布局方式。 |
| MoreButtonsClass | 获取或设置AspNetPager分页控件更多页(...)导航按钮的级联样式表 (CSS) 类。 |
| MoreButtonsStyle | 获取或设置AspNetPager分页控件更多页(...)导航按钮的CSS样式文本。 |
| MoreButtonType | 获取或设置“更多页”(...)按钮的类型,该值仅当PagingButtonType设为Image时才有效。 |
| NavigationButtonsPosition | 首页、上页、下页和尾页四个导航按钮在分页导航元素中的位置,可选值为:Left(全在左侧)、Right(全在右侧)、BothSides(默认值,分布于两侧) |
| NavigationButtonType | 获取或设置第一页、上一页、下一页和最后一页按钮的类型,该值仅当PagingButtonType设为Image时才有效。 |
| NavigationToolTipTextFormatString | 获取或设置导航按钮工具提示文本的格式。 |
| NewPageIndex | 获取用户在 AspNetPager 控件的页选择元素中选定的或在页索引文本框中手工输入的页的索引。 |
| NextPageText | 获取或设置为下一页按钮显示的文本。 |
| NumericButtonCount | 获取或设置在 AspNetPager 控件的页导航元素中同时显示的数值按钮的数目。 |
| NumericButtonTextFormatString | 获取或设置页索引数值导航按钮上文本的显示格式。 |
| NumericButtonType | 获取或设置页导航数值按钮的类型,该值仅当PagingButtonType设为Image时才有效。 |
| PageCount | 获取所有要分页的记录需要的总页数。 |
| PageIndexBoxClass | 获取或设置应用于页索引输入文本框或下拉框的CSS类名。 |
| PageIndexBoxStyle | 获取或设置页索引输入文本框或下拉框的CSS样式文本。 |
| PageIndexBoxType | 或者或设置页索引框的显示类型,可以是允许用户手工输入的文本框和只能选择的下拉框。 |
| PageIndexOutOfRangeErrorMessage | 获取或设置当用户输入的页索引超出范围(大于最大页索引或小于最小页索引)时在客户端显示的错误信息。 |
| PageSize | 获取或设置每页显示的项数。 |
| PagesRemain | 获取当前页之后未显示的页的总数。 |
| PagingButtonLayoutType | 指定分页导航按钮(数字和上页、下页、首页、尾页)布局方式,可以将这些元素包含在<li> 或<span>标签中以方便应用CSS样式,默认不包含在任何标签中。 |
| PagingButtonsClass | 获取或设置AspNetPager分页控件导航按钮(数字页索引、上页、下页、首页和尾页)的级联样式表 (CSS) 类。 |
| PagingButtonSpacing | 获取或设置分页导航按钮之间的间距。 |
| PagingButtonsStyle | 获取或设置AspNetPager分页控件导航按钮(数字页索引、上页、下页、首页和尾页)的CSS样式文本。 |
| PagingButtonType | 获取或设置分页导航按钮的类型,即使用文字还是图片。 |
| PrevNextButtonsClass | 获取或设置AspNetPager分页控件上页和下页导航按钮的级联样式表 (CSS) 类。 |
| PrevNextButtonsStyle | 获取或设置AspNetPager分页控件上页和下页导航按钮的CSS样式文本。 |
| PrevPageText | 获取或设置为上一页按钮显示的文本。 |
| RecordCount | 获取或设置需要分页的所有记录的总数。 |
| RecordsRemain | 获取在当前页之后还未显示的剩余记录的项数。 |
| ReverseUrlPageIndex | 获取或设置当启用Url分页方式时,是否以反方向显示分页页索引参数,以利于优化搜索引擎搜索结果。 |
| ShowBoxThreshold | 获取或设置自动显示页索引输入文本框的最低起始页数。 |
| ShowCustomInfoSection | 获取或设置显示用户自定义信息区的方式。 |
| ShowDisabledButtons | 获取或设置一个值,该值指定是否显示已禁用的按钮。 |
| ShowFirstLast | 获取或设置一个值,该值指示是否在页导航元素中显示第一页和最后一页按钮。 |
| ShowMoreButtons | 获取或设置一个值,该值指示是否在页导航元素中显示更多页按钮。 |
| ShowNavigationToolTip | 获取或设置一个值,该值批示当鼠标指针悬停在导航按钮上时是否显示工具提示。 |
| ShowPageIndex | 获取或设置一个值,该值指示是否在页导航元素中显示页索引数值按钮。 |
| ShowPageIndexBox | 获取或设置页索引框的显示方式,以便用户输入或从下拉框中选择需要跳转到的页索引。 |
| ShowPrevNext | 获取或设置一个值,该值指示是否在页导航元素中显示上一页和下一页按钮。 |
| SkinID | 获取或设置要应用于控件的皮肤的ID。 |
| StartRecordIndex | 当前页数据记录的起始索引。 |
| SubmitButtonClass | 获取或设置应用于提交按钮的CSS类名。 |
| SubmitButtonImageUrl | 获取或设置提交按钮的图片路径,若该属性值为空,则提交按钮显示为普通按钮,否则显示为图片按钮并使用该属性的值做为图片路径。 |
| SubmitButtonStyle | 获取或设置应用于提交按钮的CSS样式。 |
| SubmitButtonText | 获取或设置提交按钮上的文本。 |
| TextAfterPageIndexBox | 获取或设置页索引页索引输入文本框或下拉框后的文本字符串值。 |
| TextBeforePageIndexBox | 获取或设置页索引页索引输入文本框或下拉框前的文本字符串值。 |
| UrlPageIndexName | 获取或设置当启用Url分页方式时,在url中表示要传递的页索引的参数的名称。 |
| UrlPageSizeName | 获取或设置Url中指定每页显示记录数的参数的名称,或该值不为空或Url中该值对应的参数的值大于0,则PageSize属性将使用该参数的值做为每页显示的记录数。 |
| UrlPaging | 获取或设置是否启用url来传递分页信息。 |
| UrlPagingTarget | 获取或设置Url分页时分页按钮或超链接指向的目标窗口或框架的名称。 |
| UrlRewritePattern | 获取或设置分页URL重写格式。 |
方法:
事件:
| 名称 | 说明 |
|---|---|
| PageChanging | PostBack方式分页时,当页导航元素之一被单击或用户手工输入页索引提交时发生,Url方式分页时,页面第一次加载时发生,该事件发生于AspNetPager处理分页事件前。 |
| PageChanged | PostBack方式分页时,当页导航元素之一被单击或用户手工输入页索引提交时发生,Url方式分页时,页面第一次加载时发生,该事件发生于AspNetPager处理分页事件后。 |
备注:
不同于DataGrid或GridView等带分页功能的数据绑定控件,AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的显示方式与该控件无关。AspNetPager分页控件可以为GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件进行分页。AspNetPager不仅仅是一个分页控件,它还可以实现如图片浏览等程序中的前一页后一页等导航功能。AspNetPager控件的分页方法和GridView非常相似,但AspNetPager的分页功能更为灵活、强大。AspNetPager分页控件不仅仅支持默认的PostBack方式分页,它还支持通过Url来实现分页以及Url重写功能,这使得访问者可以直接输入相应的Url来访问任何页面,并且搜索引擎也可以直接检索每个页面,若使用DataGrid或GridView等.net框架自带的数据绑定控件的分页功能,这些是无法实现的。
要使用 AspNetPager 分页控件,必须最少指定它的 RecordCount 属性的值,另外如果需要,指定并编写 PageChanging 或 PageChanged 事件的处理程序,可以在PageChanging事件处理程序中取消分页事件,在PageChanged事件处理程序中绑定数据或实现自定义的数据呈现逻辑。 RecordCount 属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于 PageSize ,即要分页的数据只有一页,则AspNetPager控件默认会自动隐藏而不显示任何内容,若需在只有一页数据的情况下显示AspNetPager分页控件,可以将它的AlwaysShow属性设为true即可。
示例:
以下示例说明如何用AspNetPager对Repeater进行分页:
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<%@Import NameSpace="System.Data"%>
<%@Import NameSpace="System.Data.SqlClient"%>
<script runat="server" Language="C#">
void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
AspNetPager1.RecordCount = totalOrders;
bindData();
}
}
void bindData()
{
Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure,"P_GetPagedOrders2005",
new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
new SqlParameter("@pageSize", AspNetPager1.PageSize));
Repeater1.DataBind();
}
void AspNetPager1_PageChanged(object src, EventArgs e)
{
bindData();
}
</script>
<HTML><HEAD>
<TITLE> AspNetPager Samples </TITLE>
<META NAME="Author" CONTENT="Webdiyer (en.webdiyer.com)">
</HEAD>
<BODY>
<form runat="server">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse">
<tr style="backGround-color:#CCCCFF"><th style="width:15%"><asp:Literal ID="Literal1" runat="server" Text="<%$Resources:LocalizedText,orderid%>" /></th><th style="width:15%"><asp:Literal ID="Literal3" runat="server" Text="<%$Resources:LocalizedText,orderdate%>" /></th><th style="width:30%"><asp:Literal ID="Literal5" runat="server" Text="<%$Resources:LocalizedText,companyname%>" /></th><th style="width:20%"><asp:Literal ID="Literal2" runat="server" Text="<%$Resources:LocalizedText,customerid%>" /></th><th style="width:20%"><asp:Literal ID="Literal4" runat="server" Text="<%$Resources:LocalizedText,employeename%>" /></th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#FAF3DC">
<td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
<td><%#DataBinder.Eval(Container.DataItem, "companyname")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"employeename")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" HorizontalAlign="right" PageSize="8" OnPageChanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
</form>
</BODY>
</HTML>
该示例所用的Sql Server存储过程代码如下(仅适用于SQL Server 2005):
CREATE PROCEDURE P_GetPagedOrders2005
@startIndex INT,
@pageSize INT
AS
begin
WITH orderList AS (
SELECT ROW_NUMBER() OVER (ORDER BY O.orderid DESC)AS Row, O.orderid,O.orderdate,O.customerid,C.CompanyName,E.FirstName+' '+E.LastName as EmployeeName
from orders O
left outer join Customers C
on O.CustomerID=C.CustomerID
left outer join Employees E
on O.EmployeeID=E.EmployeeID)
SELECT orderid,orderdate,customerid,companyName,employeeName
FROM orderlist
WHERE Row between @startIndex and @startIndex+@pageSize-1
end