`
javatoyou
  • 浏览: 1018537 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Repeater自定义分页(1)

 
阅读更多

Repeater自定义分页,使用的存储过程如下

  1. --取得总记录数
  2. ifexists(select1fromsys.objectswherename='GetProductsCount'andtype='P')
  3. dropprocGetProductsCount
  4. go
  5. CREATEPROCEDUREGetProductsCount
  6. as
  7. selectcount(*)fromproducts
  8. go
  9. --使用row_number函数
  10. --SQLServer2005的新特性,它可以将记录根据一定的顺序排列,每条记录和一个等级相关这个等级可以用来作为每条记录的rowindex.
  11. ifexists(select1fromsys.objectswherename='GetProductsByPage'andtype='P')
  12. dropprocGetProductsByPage
  13. go
  14. CREATEPROCEDUREGetProductsByPage
  15. @PageNumberint,
  16. @PageSizeint
  17. AS
  18. selectProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued
  19. from
  20. (selectrow_number()Over(orderbyproductid)asrow,ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued
  21. fromproducts)asProductsWithRowNumber
  22. whererowbetween(@PageNumber-1)*@PageSize+1and@PageNumber*@PageSize
  23. go
  24. --execGetProductsByPage1,10
  25. --execGetProductsByPage5,10

页面代码如下:

  1. <asp:linkbuttonid="lbtnFirst"runat="server"commandname="First"oncommand="lbtnPage_Command">|<</asp:linkbutton>
  2. <asp:linkbuttonid="lbtnPrevious"runat="server"commandname="Previous"oncommand="lbtnPage_Command"><<</asp:linkbutton>
  3. <asp:labelid="lblMessage"runat="server">
  4. <asp:linkbuttonid="lbtnNext"runat="server"commandname="Next"oncommand="lbtnPage_Command">>></asp:linkbutton>
  5. <asp:linkbuttonid="lbtnLast"runat="server"commandname="Last"oncommand="lbtnPage_Command">>|</asp:linkbutton>
  6. 转到第<asp:dropdownlistid="dropPage"runat="server"autopostback="True"onselectedindexchanged="dropPage_SelectedIndexChanged"></asp:dropdownlist>
  7. </asp:label>
Repeater

后台代码如下:

  1. usingSystem;
  2. usingSystem.Collections;
  3. usingSystem.Configuration;
  4. usingSystem.Data;
  5. usingSystem.Web;
  6. usingSystem.Web.Security;
  7. usingSystem.Web.UI;
  8. usingSystem.Web.UI.HtmlControls;
  9. usingSystem.Web.UI.WebControls;
  10. usingSystem.Web.UI.WebControls.WebParts;
  11. usingSystem.Data.SqlClient;
  12. publicpartialclassRepeaterPaging:System.Web.UI.Page
  13. {
  14. //每页显示的最多记录的条数
  15. privateintpageSize=10;
  16. //当前页号
  17. privateintcurrentPageNumber;
  18. //显示数据的总条数
  19. privatestaticintrowCount;
  20. //总页数
  21. privatestaticintpageCount;
  22. protectedvoidPage_Load(objectsender,EventArgse)
  23. {
  24. if(!IsPostBack)
  25. {
  26. SqlConnectioncn=newSqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
  27. SqlCommandcmd=newSqlCommand("GetProductsCount",cn);
  28. cmd.CommandType=CommandType.StoredProcedure;
  29. cn.Open();
  30. rowCount=(int)cmd.ExecuteScalar();
  31. cn.Close();
  32. pageCount=(rowCount-1)/pageSize+1;
  33. currentPageNumber=1;
  34. for(inti=1;i<=pageCount;i++)
  35. {
  36. dropPage.Items.Add(newListItem(i.ToString(),i.ToString()));
  37. }
  38. dropPage.SelectedValue=dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
  39. Query();
  40. }
  41. }
  42. protectedvoidsdsProducts_Selecting(objectsender,SqlDataSourceSelectingEventArgse)
  43. {
  44. sdsProducts.SelectParameters["PageNumber"].DefaultValue=currentPageNumber.ToString();
  45. sdsProducts.SelectParameters["PageSize"].DefaultValue=pageSize.ToString();
  46. }
  47. protectedvoidsdsProducts_Selected(objectsender,SqlDataSourceStatusEventArgse)
  48. {
  49. lblMessage.Text="共找到"+rowCount+"条记录,当前第"+currentPageNumber+"/"+pageCount+"页";
  50. }
  51. protectedvoidlbtnPage_Command(objectsender,CommandEventArgse)
  52. {
  53. switch(e.CommandName)
  54. {
  55. case"First":
  56. currentPageNumber=1;
  57. break;
  58. case"Previous":
  59. currentPageNumber=(int)ViewState["currentPageNumber"]-1>1?(int)ViewState["currentPageNumber"]-1:1;
  60. break;
  61. case"Next":
  62. currentPageNumber=(int)ViewState["currentPageNumber"]+1<pageCount?(int)ViewState["currentPageNumber"]+1:pageCount;
  63. break;
  64. case"Last":
  65. currentPageNumber=pageCount;
  66. break;
  67. }
  68. dropPage.SelectedValue=dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
  69. Query();
  70. }
  71. protectedvoiddropPage_SelectedIndexChanged(objectsender,EventArgse)
  72. {
  73. currentPageNumber=int.Parse(dropPage.SelectedValue);
  74. Query();
  75. }
  76. privatevoidQuery()
  77. {
  78. ViewState["currentPageNumber"]=currentPageNumber;
  79. SetButton(currentPageNumber);
  80. sdsProducts.Select(DataSourceSelectArguments.Empty);
  81. }
  82. privatevoidSetButton(intcurrentPageNumber)
  83. {
  84. lbtnFirst.Enabled=currentPageNumber!=1;
  85. lbtnPrevious.Enabled=currentPageNumber!=1;
  86. lbtnNext.Enabled=currentPageNumber!=pageCount;
  87. lbtnLast.Enabled=currentPageNumber!=pageCount;
  88. }
  89. }

页面效果如下

Repeater分页效果图
分享到:
评论

相关推荐

    repeater自定义分页

    可以很好的实现repeater的自定义分页,repeater相对于gridview来说比较自由,灵活,但是没有内包分页。

    功能非常好自主研发的自定义Repeater分页控件

    功能非常好自主研发的自定义Repeater分页控件,包括目前较为流行的20多种分页样式,也可定义无刷新分页,支持简洁分页,调用存储过程分页,速度很好,是您页面上的最佳选择,本人还有许多其它的一些控件,如有需要可...

    一个datalist,Repeater等数据控件的自定义分页

    一个datalist,Repeater等数据控件的自定义分页

    repeater 分页 的自定义控件

    repeater 通过在后台生成的linkbutton的点击事件进行分页

    自定义控件之万能Repeater源码

    为什么要用Repeater,因为Repeater的性能最好,扩展性最强。为什么现在用Repeater的人越来越少,因为其可操作性相对较差。Repeater 完成列表,分页,全选,批量删除,排序等功能。

    C#自定义分页控件

    二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的...

    asp.net非控件自定义URL分页源代码_AspNetPagingV2.0

    纯代码自定义分页,支持URL分页 支持绑定Repeater控件 分页效果为: 第115/117页 共351条 首页上一页下一页末页

    ASP.NET自定义分页控件

    该分页控件使用简单,可扩展性强(目前支持GridView和Repeater两种控件,如果需要可自行扩展),项目Default页面演示了控件的基本用法。

    能用漂亮分页控件及Demo源码

    Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url...

    自定义控件之万能Repeater源码 asp.net

    自定义控件之万能Repeater源码 为什么要用Repeater,因为Repeater的性能最好,扩展性最强。 为什么现在用Repeater的人越来越少,因为其可操作性相对较差。 那么,如果我只需拖动一个Repeater 然后给他一个数据源 就...

    asp.net Repeater分页实例(PageDataSource的使用)

    实现DataList或Repeater控件的分页显示有几种方法: 1、写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable) 2、使用PagedDataSource类(位于System.Web.UI.WebControls命名空间里) 本篇文章...

    .NET 通用分页控件

    如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、...

    asp.net下Repeater使用 AspNetPager分页控件

    而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP...

    asp.net c#自定义控件之万能Repeater源码

    自定义控件之万能Repeater源码 为什么要用Repeater,因为Repeater的性能最好,扩展性最强。 为什么现在用Repeater的人越来越少,因为其可操作性相对较差。 那么,如果我只需拖动一个Repeater 然后给他一个数据源 就...

    asp.net2.0

    排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...

    asp.net2.0数据教程

    排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...

    ASP.NET2.0数据教程

    排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...

Global site tag (gtag.js) - Google Analytics