一、引言
随着 Internet 的普及,互联网已经成为人们日常生活的重要组成部分,人们通过网络可以浏览新闻、阅读小说、实现购物等,而这些行为的实现,都需要相关网站包含有大量的信息,并以网页的形式将相关信息呈现在用户面前,但大量信息通过一个页面显示[1],显然会影响用户的使用效果,分页显示数据即可解决大量信息的显示问题,从用户角度来说,分页显示数据即实现了一个网页承载大量信息.而使用基于 ASP.NET 技术的自定义分页控件即可实现灵活设置当前页面显示信息数量的设置.
二、自定义分页控件的实现过程
2.1 自定义分页控件的设计.可根据具体需求,创建不同格式的分页控件,本文实现的自定义分页控件实现了一般的分页功能,即"首页"、"上一页"、"下一页"、"末页"以及显示当前页数及总页数.其中"首页"、"上一页"、"下一页"、"末页"可用 HyperLink 控件加以实现,当前页数及总页数可用 Label 控件加以实现,另外为了方便分页控件的显示与隐藏可将以上控件放置在 Panel 控件中,进行集中控制[2].
2.2 自定义分页控件功能实现(1)设置分页控件自定义设置项.一般来说,分页控件的当前页面显示记录数,数据源及数据呈现控件是需要灵活设置的,所以在创建自定义分页控件时,可将其设置为类成员变量,并将其访问方式定义为 private,再创建其只读属性[3],即可实现通过自定义分页控件实现以上信息的灵活设置.
数据呈现控件一般为 Repeater 控件或 DataList 控件等,此文以数据绑定至 Repeater 控件为例,代码如下:
private int iRowCount; // 记录总数
private int iPageSize; // 一页显示的记录数
private int iPageCount; // 总页码
private int iPageIndex = 0; // 当前页码
private DataTable dt; // 创建数据表对象
dtprivate Repeater repeater; // 创建
Repeater 对象
repeaterpublic int IPageSize //iPageSize 属性
{ set { iPageSize = value; } }
public DataTable DT //dt 属性
{ set { dt = value; } }
public Repeater IRepeater //repeater 属性
{ set { repeater = value; } }
(2)应用 PagedDataSource 类实现对数据源数据的分页操作.通过PagedDataSource类实现对数据源数据的分页操作,需要设置其分页对象数据源属性(DataSource)、允许分页属性(AllowPaging)、每页显示记录数属性(PageSize)、当前页码属性(CurrentPageIndex)、总页码数属性(PageCount)等,代码如下:
PagedDataSource pds = new PagedDataSource(); // 创建分页对象
pdspds.DataSource = dt.DefaultView; // 设置分页对象数据源
dtpds.AllowPaging = true; // 设置允许分页
pds.PageSize = iPageSize; // 设置每页显示记录数
pds.CurrentPageIndex = iPageIndex - 1; // 设置当前页码
iPageCount = pds.PageCount; // 设置总页码数
// 分页对象 pds 作为数据源绑定至分页控件 repeater,显示分页后查询结果
repeater.DataSource = pds;
repeater.DataBind();
说明:"iPageIndex"变量为当前页码变量,此变量在分页实现控制实现过程中动态设置.
三、结语
应用该自定义分页控件,可灵活设置分页显示数据,控件引用方便,编码简单,对于中小规模数据量分页速度较快,用户体验较好,但对于数据量较大的页面建议使用 SQL 双Top 查询实现.
参考文献
[1] 金铁 . 浅议 ASP.NET 的分页技术 [J]. 信息系统工程 ,2012(02).
[2] 庄新研 . ASP.NET 中实现数据分页的几种方法 [J]. 电脑知识与技术 ,2011(07).
[3] 马相芬 . 基于 ASP.NET 的分页技术研究 [J]. 电脑编程技巧与维护 ,2014(12).