`
- 浏览:
1018537 次
- 性别:
- 来自:
北京
-
Repeater自定义分页,使用的存储过程如下
- ifexists(select1fromsys.objectswherename='GetProductsCount'andtype='P')
- dropprocGetProductsCount
- go
- CREATEPROCEDUREGetProductsCount
- as
- selectcount(*)fromproducts
- go
- ifexists(select1fromsys.objectswherename='GetProductsByPage'andtype='P')
- dropprocGetProductsByPage
- go
- CREATEPROCEDUREGetProductsByPage
- @PageNumberint,
- @PageSizeint
- AS
- selectProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued
- from
- (selectrow_number()Over(orderbyproductid)asrow,ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued
- fromproducts)asProductsWithRowNumber
- whererowbetween(@PageNumber-1)*@PageSize+1and@PageNumber*@PageSize
- go
页面代码如下:
- <asp:linkbuttonid="lbtnFirst"runat="server"commandname="First"oncommand="lbtnPage_Command">|<</asp:linkbutton>
- <asp:linkbuttonid="lbtnPrevious"runat="server"commandname="Previous"oncommand="lbtnPage_Command"><<</asp:linkbutton>
- <asp:labelid="lblMessage"runat="server">
- <asp:linkbuttonid="lbtnNext"runat="server"commandname="Next"oncommand="lbtnPage_Command">>></asp:linkbutton>
- <asp:linkbuttonid="lbtnLast"runat="server"commandname="Last"oncommand="lbtnPage_Command">>|</asp:linkbutton>
- 转到第<asp:dropdownlistid="dropPage"runat="server"autopostback="True"onselectedindexchanged="dropPage_SelectedIndexChanged"></asp:dropdownlist>页
- </asp:label>
后台代码如下:
- usingSystem;
- usingSystem.Collections;
- usingSystem.Configuration;
- usingSystem.Data;
- usingSystem.Web;
- usingSystem.Web.Security;
- usingSystem.Web.UI;
- usingSystem.Web.UI.HtmlControls;
- usingSystem.Web.UI.WebControls;
- usingSystem.Web.UI.WebControls.WebParts;
- usingSystem.Data.SqlClient;
- publicpartialclassRepeaterPaging:System.Web.UI.Page
- {
- privateintpageSize=10;
- privateintcurrentPageNumber;
- privatestaticintrowCount;
- privatestaticintpageCount;
- protectedvoidPage_Load(objectsender,EventArgse)
- {
- if(!IsPostBack)
- {
- SqlConnectioncn=newSqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
- SqlCommandcmd=newSqlCommand("GetProductsCount",cn);
- cmd.CommandType=CommandType.StoredProcedure;
- cn.Open();
- rowCount=(int)cmd.ExecuteScalar();
- cn.Close();
- pageCount=(rowCount-1)/pageSize+1;
- currentPageNumber=1;
- for(inti=1;i<=pageCount;i++)
- {
- dropPage.Items.Add(newListItem(i.ToString(),i.ToString()));
- }
- dropPage.SelectedValue=dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
- Query();
- }
- }
- protectedvoidsdsProducts_Selecting(objectsender,SqlDataSourceSelectingEventArgse)
- {
- sdsProducts.SelectParameters["PageNumber"].DefaultValue=currentPageNumber.ToString();
- sdsProducts.SelectParameters["PageSize"].DefaultValue=pageSize.ToString();
- }
- protectedvoidsdsProducts_Selected(objectsender,SqlDataSourceStatusEventArgse)
- {
- lblMessage.Text="共找到"+rowCount+"条记录,当前第"+currentPageNumber+"/"+pageCount+"页";
- }
- protectedvoidlbtnPage_Command(objectsender,CommandEventArgse)
- {
- switch(e.CommandName)
- {
- case"First":
- currentPageNumber=1;
- break;
- case"Previous":
- currentPageNumber=(int)ViewState["currentPageNumber"]-1>1?(int)ViewState["currentPageNumber"]-1:1;
- break;
- case"Next":
- currentPageNumber=(int)ViewState["currentPageNumber"]+1<pageCount?(int)ViewState["currentPageNumber"]+1:pageCount;
- break;
- case"Last":
- currentPageNumber=pageCount;
- break;
- }
- dropPage.SelectedValue=dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
- Query();
- }
- protectedvoiddropPage_SelectedIndexChanged(objectsender,EventArgse)
- {
- currentPageNumber=int.Parse(dropPage.SelectedValue);
- Query();
- }
- privatevoidQuery()
- {
- ViewState["currentPageNumber"]=currentPageNumber;
- SetButton(currentPageNumber);
- sdsProducts.Select(DataSourceSelectArguments.Empty);
- }
- privatevoidSetButton(intcurrentPageNumber)
- {
- lbtnFirst.Enabled=currentPageNumber!=1;
- lbtnPrevious.Enabled=currentPageNumber!=1;
- lbtnNext.Enabled=currentPageNumber!=pageCount;
- lbtnLast.Enabled=currentPageNumber!=pageCount;
- }
- }
页面效果如下
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
可以很好的实现repeater的自定义分页,repeater相对于gridview来说比较自由,灵活,但是没有内包分页。
功能非常好自主研发的自定义Repeater分页控件,包括目前较为流行的20多种分页样式,也可定义无刷新分页,支持简洁分页,调用存储过程分页,速度很好,是您页面上的最佳选择,本人还有许多其它的一些控件,如有需要可...
一个datalist,Repeater等数据控件的自定义分页
repeater 通过在后台生成的linkbutton的点击事件进行分页
为什么要用Repeater,因为Repeater的性能最好,扩展性最强。为什么现在用Repeater的人越来越少,因为其可操作性相对较差。Repeater 完成列表,分页,全选,批量删除,排序等功能。
二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的...
纯代码自定义分页,支持URL分页 支持绑定Repeater控件 分页效果为: 第115/117页 共351条 首页上一页下一页末页
该分页控件使用简单,可扩展性强(目前支持GridView和Repeater两种控件,如果需要可自行扩展),项目Default页面演示了控件的基本用法。
Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url...
自定义控件之万能Repeater源码 为什么要用Repeater,因为Repeater的性能最好,扩展性最强。 为什么现在用Repeater的人越来越少,因为其可操作性相对较差。 那么,如果我只需拖动一个Repeater 然后给他一个数据源 就...
实现DataList或Repeater控件的分页显示有几种方法: 1、写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable) 2、使用PagedDataSource类(位于System.Web.UI.WebControls命名空间里) 本篇文章...
如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、...
而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP...
自定义控件之万能Repeater源码 为什么要用Repeater,因为Repeater的性能最好,扩展性最强。 为什么现在用Repeater的人越来越少,因为其可操作性相对较差。 那么,如果我只需拖动一个Repeater 然后给他一个数据源 就...
排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...
排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...
排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多...