分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Asp.Net分页控件

发布时间:2023-09-06 01:42责任编辑:傅花花关键词:暂无标签
     /// <summary> ???????/// 分页方法 ???????/// </summary> ???????/// <param name="pageIndex">当前页码</param> ???????/// <param name="totalCount">总条数</param> ???????/// <param name="pageSize">一页多少条</param> ???????/// /// <param name="url">页面地址</param> ???????/// <param name="pageLength">显示多少页码</param> ???????/// <returns></returns> ???????public static string Page(int pageIndex,int totalCount,int pageSize, string url,int pageLength=5) ???????{ ???????????if (totalCount<=0) ???????????{ ???????????????return ""; ???????????} ???????????//保证在编写下一页的代码定向时不会受到中间for循环的干扰使pageIndex的值发生改变 ???????????int redirectPageIndex = pageIndex; ???????????//pageSize不可为0 ???????????if (pageSize==0) ???????????{ ???????????????pageSize = totalCount; ???????????} ???????????//获得当前可分页的页数数量 ???????????int pageCount = totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1); ???????????//创建用来拼接字符串的对象 ???????????StringBuilder sb = new StringBuilder(); ???????????//处理首页 ???????????if (pageIndex!=1) ???????????{ ???????????????//当前传递进来的页码不是第1页,则显示首页和上一页 ???????????????sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>首页</a><a href={0}?pageIndex={3}&pageSize={2}>上一页</a>", url,1, pageSize,pageIndex-1)); ???????????} ???????????//保存显示的页码数量 ???????????int length; ???????????//处理中间的页码 ???????????if (pageLength >= pageCount || pageLength <= 0) ???????????{ ???????????????//如果需要分成的页码数量比可分成的大 ???????????????length = pageCount; ???????????} ???????????else ???????????{ ???????????????length = pageLength; ??????????????????????????} ???????????//方便计算当前应该转折的pageIndex的值 ???????????int t = pageIndex /length; ???????????int p = pageIndex % length; ???????????//这里给pageIndex重定向 ???????????int l = pageCount - length + 1; ???????????//当前已经到了最后的转折点 ???????????if (pageIndex>=l) ???????????{ ???????????????pageIndex = l; ???????????} ???????????else ???????????{ ???????????????//还未到 ???????????????//pageIndex = t * length + 1; ???????????????if (p==0&&t==1) ???????????????{ ???????????????????//这里说明在第一个转折点 ???????????????????pageIndex = 1; ???????????????} ???????????????else ???????????????{ ???????????????????//不在第一个 ???????????????????if (p==0) ???????????????????{ ???????????????????????//这是在转折点的时候 ???????????????????????pageIndex = (t - 1) * length + 1; ???????????????????} ???????????????????else ???????????????????{ ???????????????????????pageIndex = t * length + 1; ???????????????????} ???????????????????????????????????} ???????????} ???????????//如果当前页码为最后一页 ???????????if (pageIndex>=pageCount) ???????????{ ???????????????//则让pageIndex回复到之前 ???????????????pageIndex = pageIndex - length+1; // + 1; ???????????} ???????????//方便跳出循环 ???????????//int temp = 1; ???????????for (int i = 0; i < length; i++) ???????????{ ???????????????//if (temp > length) ???????????????//{ ???????????????// ???break; ???????????????//} ???????????????sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>{1}</a>",url, pageIndex, pageSize)); ???????????????pageIndex++; ???????????????//temp++; ???????????} ???????????//处理下一页与末页 ???????????if (redirectPageIndex < pageCount) ???????????{ ???????????????//当前传递进来的页码不是最后页,则显示末页和下一页 ???????????????sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>下一页</a><a href={0}?pageIndex={3}&pageSize={2}>末页</a>",url, redirectPageIndex + 1, pageSize,pageCount)); ???????????} ???????????sb.Append(string.Format("<span class=‘info‘>第{0}页/共{1}页</span>", redirectPageIndex, pageCount)); ?????????????????????return sb.ToString(); ???????}

  

自己写的,不足不怪

调用方法:

前台传递

pageIndex:前台当前要显示的页码/当前被点击的页码,例如1

pageSize:前台当前要显示的数据数量,例如10

totalCount:所有数据的总条数,例如后台获取到100条

url:参数将要被传递到哪个页面/后台程序内,例如"a.aspx",则会生成<a href="a.aspx?pageIndex=1&pageSize=10">1</a>,也可不传(例如用在ajax异步无刷新分页时,但要自己手动处理分页中a标签的href属性,从中提取出pageIndex=1&pageSize=10)

pageLength:当前页中想要显示的页码数量,默认为5,例如当前数据库中的数据每次在前台展示10条,可以生成一共12个页码,传入pageLength为5后,则每次只会在页面上显示5个页码.

Asp.Net分页控件

原文地址:https://www.cnblogs.com/rbzz/p/8438639.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved