Repeater自定义分页(1)
来源:互联网 发布:python入门经典 编辑:程序博客网 时间:2024/05/21 17:49
Repeater自定义分页,使用的存储过程如下
--取得总记录数if exists(select 1 from sys.objects where name = 'GetProductsCount' and type = 'P')drop proc GetProductsCountgoCREATE PROCEDURE GetProductsCountasselect count(*) from productsgo--使用row_number函数--SQL Server 2005的新特性,它可以将记录根据一定的顺序排列,每条记录和一个等级相关 这个等级可以用来作为每条记录的row index.if exists(select 1 from sys.objects where name = 'GetProductsByPage' and type = 'P')drop proc GetProductsByPagegoCREATE PROCEDURE GetProductsByPage@PageNumberint,@PageSizeintASselect ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinuedfrom(select row_number() Over (order by productid) as row,ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinuedfrom products) as ProductsWithRowNumberwhere row between (@PageNumber - 1) * @PageSize + 1 and @PageNumber * @PageSizego--exec GetProductsByPage 1, 10--exec GetProductsByPage 5, 10
页面代码如下:
|< << >> >| 转到第页
后台代码如下:
using System;using System.Collections;using System.Configuration;using System.Data;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Data.SqlClient;public partial class RepeaterPaging : System.Web.UI.Page{ //每页显示的最多记录的条数 private int pageSize = 10; //当前页号 private int currentPageNumber; //显示数据的总条数 private static int rowCount; //总页数 private static int pageCount; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand("GetProductsCount", cn); cmd.CommandType = CommandType.StoredProcedure; cn.Open(); rowCount = (int)cmd.ExecuteScalar(); cn.Close(); pageCount = (rowCount - 1) / pageSize + 1; currentPageNumber = 1; for (int i = 1; i <= pageCount; i++) { dropPage.Items.Add(new ListItem(i.ToString(), i.ToString())); } dropPage.SelectedValue = dropPage.Items.FindByValue(currentPageNumber.ToString()).Value; Query(); } } protected void sdsProducts_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { sdsProducts.SelectParameters["PageNumber"].DefaultValue = currentPageNumber.ToString(); sdsProducts.SelectParameters["PageSize"].DefaultValue = pageSize.ToString(); } protected void sdsProducts_Selected(object sender, SqlDataSourceStatusEventArgs e) { lblMessage.Text = "共找到" + rowCount + "条记录, 当前第" + currentPageNumber + "/" + pageCount + "页"; } protected void lbtnPage_Command(object sender, CommandEventArgs e) { 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(); } protected void dropPage_SelectedIndexChanged(object sender, EventArgs e) { currentPageNumber = int.Parse(dropPage.SelectedValue); Query(); } private void Query() { ViewState["currentPageNumber"] = currentPageNumber; SetButton(currentPageNumber); sdsProducts.Select(DataSourceSelectArguments.Empty); } private void SetButton(int currentPageNumber) { lbtnFirst.Enabled = currentPageNumber != 1; lbtnPrevious.Enabled = currentPageNumber != 1; lbtnNext.Enabled = currentPageNumber != pageCount; lbtnLast.Enabled = currentPageNumber != pageCount; }}
页面效果如下
- Repeater自定义分页(1)
- Repeater自定义分页(1)
- Repeater自定义分页(1)
- Repeater自定义分页
- Repeater自定义分页排序
- Repeater 自定义分页
- Repeater控件自定义分页
- Repeater自定义分页
- Repeater自定义分页
- Repeater自定义分页排序(2)
- Repeater自定义分页排序(2)
- Repeater自定义分页排序(2)
- 自定义分页(适用于DataList,Repeater)
- Repeater自定义分页 + 排序 + 全选删除(3)
- Repeater自定义分页 + 排序 + 全选删除
- Repeater自定义分页 + 排序 + 全选删除(3)
- Repeater自定义分页 + 排序 + 全选删除(3)
- Repeater自定义分页 + 排序 + 全选删除
- 挖掘package声明的潜力
- vs2008安装失败 以及各个版本的介绍!
- 看不见的养车成本——热门车易损件大调查
- Google和百度、雅虎的站内搜索代码
- 开发 Web 服务,第 3 部分: SOAP 互操作性
- Repeater自定义分页(1)
- 物流业和计算机人才
- 新的开始
- 我这十年之回忆录
- URL转发基础!
- Java的ClassLoader与Package机制
- 到了一个陌生的地方,感觉特别的想家
- 网页制作中常用的基础知识001-将Flash文件的背景设置为透明
- linux0.11中*((char **) cp)的分析