我做了一个AspNetPager分页控件结合ObjectDataSource的例子,步骤如下,用作备忘:
注:整个例子的源代码在 http://115.com/file/clsqosdw
1.下载AspNetPager分页控件:
http://www.webdiyer.com/Controls/AspNetPager/Downloads (下载 AspNetPager732Samples.rar即可,里面包含了DLL)
2.设置:
1)建一个网站项目,把下载压缩包里的AspNetPager732Samples\Bin 目录里的内容复制包含到项目的bin目录
2)引用 bin 下的AspNetPager.dll
3.建立相应文件(三层结构,具体见源代码)
4.注册AspNetPager:在web.config里的 <pages> /<controls>/下加如下代码:
<add tagPrefix="webdiyer" namespace="Wuqi.Webdiyer" assembly="AspNetPager"/>
5.Default.aspx文件的具体内容介绍
1)添加样式 <link href="css/Style.css" rel="stylesheet" type="text/css" /> (是根据 http://www.webdiyer.com/AspNetPagerDemo/ApplyStyles/default.aspx 里的一个样式)
2)添加 ObjectDataSource ,Repeater,aspnetpager 以及用于ajax 的ScriptManager和UpdatePanel 。
Repeater,aspnetpager 放到UpdatePanel /ContentTemplate 下
3)ObjectDataSource 的设置:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" EnablePaging="True" SelectCountMethod="GetOrderCount"
SelectMethod="GetPagedOrders" TypeName="AspNetPagerDEMO.bll.Articlebll" OnSelecting="ODS_Selecting" StartRowIndexParameterName="startIndex" MaximumRowsParameterName="pageSize" >
<SelectParameters>
<asp:ControlParameter ControlID="AspNetPager1" PropertyName="StartRecordIndex" DefaultValue="1" Name="startIndex" Type="Int32" />
<asp:ControlParameter ControlID="AspNetPager1" PropertyName="PageSize" DefaultValue="10"
Name="pageSize" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
一些设置说明:EnablePaging="True" ;
SelectCountMethod="GetOrderCount" ---- 获取查询表的总行数在AspNetPagerDEMO.bll.Articlebll中定义
SelectMethod="GetPagedOrders" ---- 根据参数获取查询当前页的记录数,在AspNetPagerDEMO.bll.Articlebll中定义
两个参数(开始索引,和一页显示的行数) 在具体执行时为该页的开始索引和结束索引
详见:AspNetPagerDEMO.dal.Article.GetPagedOrders
OnSelecting="ODS_Selecting" ---具体见 Default.aspx.cs 大概起到定位数据变化的作用
(Default.aspx.cs 在load时设置AspNetPager1的RecordCount 查询表的总行数)
StartRowIndexParameterName="startIndex" ----该页检索第一行的值
MaximumRowsParameterName="pageSize" -- 检索行数
以上两个的值 和GetPagedOrders里两个参数名以及以下的两个Name一样
<asp:ControlParameter ControlID="AspNetPager1" PropertyName="StartRecordIndex" DefaultValue="1" Name="startIndex" Type="Int32" />
<asp:ControlParameter ControlID="AspNetPager1" PropertyName="PageSize" DefaultValue="10" Name="pageSize" Type="Int32" />
GetPagedOrders的参数的值通过以上两行获取
4) AspNetPager设置,例子如下,各种不同的设置效果见http://www.webdiyer.com/AspNetPagerDemo/default.aspx 以及AspNetPager732Samples.rar下的
<webdiyer:aspnetpager id="AspNetPager1" runat="server" AlwaysShow="True"
ShowCustomInfoSection="Left" PageSize="4"
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页"
CssClass="paginator" CurrentPageButtonClass="cpb" CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页"
PageIndexBoxType="DropDownList" ShowPageIndexBox="Auto" SubmitButtonText="Go"
TextAfterPageIndexBox="页" TextBeforePageIndexBox="转到" LayoutType="Table"></webdiyer:aspnetpager>