Asp.net里头,像DataList,Repeater,DataGrid,GridView,FormView包括Asp.net3.5中的ListView这几种服务器数据绑定控件,是在开发中经常需要用到的,撇开Asp.net3.5(因为3.5的版本有带分页的控件),DataGrid是1.1版本中很强大的控件,GridView则是2.0中有的,其实就是DataGrid的升级版,他们自身都带有分页功能,只需设置下属性,而DataList和Repeater则没有,下面就以DataList为例实现自定义分页.
首先,先来看一个类:PagedDataSource其成员如下:
有发现什么没?可以看到这些属性在GridView等有内置分页的控件中是类似的,所以这些有内置分页的控件也是通过该类实现分页的,那下来就好办了
前台Html代码:
首先,先来看一个类:PagedDataSource其成员如下:
名称 | 说明 | |
---|---|---|
AllowCustomPaging | 获取或设置一个值,指示是否在数据绑定控件中启用自定义分页。 | |
AllowPaging | 获取或设置一个值,指示是否在数据绑定控件中启用分页。 | |
AllowServerPaging | 获取或设置一个值,指示是否启用服务器端分页。 | |
Count | 获取要从数据源使用的项数。 | |
CurrentPageIndex | 获取或设置当前页的索引。 | |
DataSource | 获取或设置数据源。 | |
DataSourceCount | 获取数据源中的项数。 | |
FirstIndexInPage | 获取页面中显示的首条记录的索引。 | |
IsCustomPagingEnabled | 获取一个值,该值指示是否启用自定义分页。 | |
IsFirstPage | 获取一个值,该值指示当前页是否是首页。 | |
IsLastPage | 获取一个值,该值指示当前页是否是最后一页。 | |
IsPagingEnabled | 获取一个值,该值指示是否启用分页。 | |
IsReadOnly | 获取一个值,该值指示数据源是否是只读的。 | |
IsServerPagingEnabled | 获取一个值,指示是否启用服务器端分页支持。 | |
IsSynchronized | 获取一个值,该值指示是否同步对数据源的访问(线程安全)。 | |
PageCount | 获取显示数据源中的所有项所需要的总页数。 | |
PageSize | 获取或设置要在单页上显示的项数。 | |
SyncRoot | 获取可用于同步集合访问的对象。 | |
VirtualCount | 获取或设置在使用自定义分页时数据源中的实际项数。 |
前台Html代码:
共:<asp:Label id="lblPageTotal" runat="server"></asp:Label>页
<asp:LinkButton id="lbFirst" onclick="PagerButton_Click" runat="server" CommandArgument="first">首 页</asp:LinkButton>
<asp:LinkButton id="lbPrev" onclick="PagerButton_Click" runat="server" CommandArgument="prev">上一页</asp:LinkButton>
<asp:LinkButton id="lbNext" onclick="PagerButton_Click" runat="server" CommandArgument="next">下一页</asp:LinkButton>
<asp:LinkButton id="lbLast" onclick="PagerButton_Click" runat="server" CommandArgument="last">尾 页</asp:LinkButton>
当前:第<asp:Label id="lblCurrentPage" runat="server"></asp:Label>页
跳转至:第<asp:DropDownList ID="ddlPage" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPage_SelectedIndexChanged"></asp:DropDownList>页
后台.cs代码:<asp:LinkButton id="lbFirst" onclick="PagerButton_Click" runat="server" CommandArgument="first">首 页</asp:LinkButton>
<asp:LinkButton id="lbPrev" onclick="PagerButton_Click" runat="server" CommandArgument="prev">上一页</asp:LinkButton>
<asp:LinkButton id="lbNext" onclick="PagerButton_Click" runat="server" CommandArgument="next">下一页</asp:LinkButton>
<asp:LinkButton id="lbLast" onclick="PagerButton_Click" runat="server" CommandArgument="last">尾 页</asp:LinkButton>
当前:第<asp:Label id="lblCurrentPage" runat="server"></asp:Label>页
跳转至:第<asp:DropDownList ID="ddlPage" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPage_SelectedIndexChanged"></asp:DropDownList>页
Code
绑定数据源的方法Code
触发分页按钮的事件Code
触发下拉框的事件Code
代码很简单,就不解释了...要注意的是,下拉框要在页面载入的时候初始化,不然触发不到下拉框的事件.