全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#实现分页组件的方法

分页无论是前端和后端,基本都有广泛应用!下面通过一个小小案例完成这个分页效果:

参数含义:

string urlFormat: 要传给服务器端的URL地址格式,方便在点超链接时进行相应的跳转

long totalSize:     总的数据条数。

long pageSize:    每页多少条数据

 long currentPage: 当前的页数

后面通过具体的一个案例来用这个分页方法:

一.分页方法:

/// <summary>
  /// 生成页码的html
  /// </summary>
  /// <param name="urlFormat">超链接的格式。list.ashx?pagenum={pageNum}。地址中用{pagenum}做为当前页码的占位符</param></param>
  /// <param name="totalSize">总数据条数</param>
  /// <param name="pageSize">每页多少条数据</param>
  /// <param name="currentPage">当前页</param>
  /// <returns></returns>
  public static RawString Pager(string urlFormat, long totalSize,
   long pageSize, long currentPage)
  {
   StringBuilder sb = new StringBuilder();
   //总页数
   long totalPageCount = (long)Math.Ceiling((totalSize * 1.0f) / (pageSize * 1.0f));
   //当前页的前几页
   long firstPage = Math.Max(currentPage - 5, 1);
   //当前页的后几页
   long lastPage = Math.Min(currentPage + 6, totalPageCount);
   //绘制分页,首页
   sb.AppendLine("<div><a href='" + urlFormat.Replace("{pageNum}", "1") + "'>首页</a>");
   //绘制分页中间数据部分
   for (long i = firstPage; i < lastPage; i++)
   {
    string url = urlFormat.Replace("{pageNum}", i.ToString());
    if (i == currentPage) //点击后就不显示超链接
    {
     sb.AppendLine("<a>" + i + "</a>");
    }
    else
    {
     sb.AppendLine("<a href='" + url + "'>" + i + "</a>");
    }
   }
   //显示最后一页
   sb.AppendLine("<a href='" + urlFormat.Replace("{pageNum}", totalPageCount.ToString()) + "'>末页</a></div>");
   return new RawString(sb.ToString());
  }

二.案例调用:

服务器端(test.ashx):这里为了方便看到效果,展示数据直接用的固定数据

public void ProcessRequest(HttpContext context)
  {
   context.Response.ContentType = "text/html";
   long pn = Convert.ToInt64(context.Request["pn"]);
   if (pn == 0) //Convert.ToInt64(null)返回的是0
   {
    pn = 1;
   }
   long[] num = new long[50]; //这里的数据用的是固定数据
   for (int i = 0; i < 50; i++)
   {
    num[i] = ((pn-1) * 50) + i;
   }
   OutputRazor(context, "~/test.cshtml", new { nums=num,page=pn}); //这里用的Razor模板引擎
  }

这里的Razor方法见:Razor模板引擎简单介绍

UI端展示(test.cshtml):

<body> 
  <ul>
    @{
  foreach (int i in Model.nums)
  {
   <li>@i</li>
  }
  }
   </ul>
  @Pager("test.ashx?pn={pageNum}", 1020, 50, Model.page); 
</body>

效果图:

三.jQuery分页插件:

前面写的这些主要是进行功能的实现,样式效果差了点。下面贴上通过jQuery实现的分页效果

jQuery的效果图,及调用方法:

 完整代码:

<!DOCTYPE html>
<html lang="zh-cn" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>一个非常简单的jQuery分页插件</title>
<style>
*{ margin:0; padding:0; list-style:none;}
a{ text-decoration:none;}
a:hover{ text-decoration:none;}
.tcdPageCode{padding: 15px 20px;text-align: left;color: #ccc;}
.tcdPageCode a{display: inline-block;color: #428bca;display: inline-block;height: 25px; line-height: 25px; padding: 0 10px;border: 1px solid #ddd; margin: 0 2px;border-radius: 4px;vertical-align: middle;}
.tcdPageCode a:hover{text-decoration: none;border: 1px solid #428bca;}
.tcdPageCode span.current{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #fff;background-color: #428bca; border: 1px solid #428bca;border-radius: 4px;vertical-align: middle;}
.tcdPageCode span.disabled{ display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px; color: #bfbfbf;background: #f2f2f2;border: 1px solid #bfbfbf;border-radius: 4px;vertical-align: middle;}
</style>
</head>
<body>
<!-- 代码部分begin -->
 <div class="tcdPageCode">
 </div>
 <pre>
 调用方法:
 $(".tcdPageCode").createPage({
  pageCount:20,
  current:1,
  backFn:function(p){
   //单击回调方法,p是当前页码
  }
 });
 pageCount:总页数
 current:当前页
 </pre>
</body>
<script src="/ajaxjs/jquery.min.js"></script>
<script src="/ajaxjs/jquery.page.js"></script>
<script>
 $(".tcdPageCode").createPage({
  pageCount:20,
  current:5,
  backFn:function(p){
   console.log(p);
  }
 });
</script>
<!-- 代码部分end -->
</html> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C#  # 分页组件  # 分页  # C# DataTable分页处理实例代码  # C#构建分页应用的方法分析  # 适用于WebForm Mvc的Pager分页组件C#实现  # C#基于数据库存储过程的AJAX分页实例  # c#分页读取GB文本文件实例  # c#分页显示服务器上指定目录下的所有图片示例  # C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序  # 基于jquery的分页控件(C#)  # C#中常用的分页存储过程小结  # 的是  # 当前页  # 超链接  # 每页  # 首页  # 条数  # 都有  # 就不  # 跳转  # 末页  # 贴上  # 一个小小  # 回调  # 差了  # 单击  # 大家多多  # 来用  # 主要是  # 后端 


相关文章: 潮流网站制作头像软件下载,适合母子的网名有哪些?  手机网站制作与建设方案,手机网站如何建设?  建站为何优先选择香港服务器?  如何用免费手机建站系统零基础打造专业网站?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站主机解析:虚拟主机配置与服务器选择指南  如何用腾讯建站主机快速创建免费网站?  设计网站制作公司有哪些,制作网页教程?  如何快速上传自定义模板至建站之星?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  建站之星多图banner生成与模板自定义指南  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  焦点电影公司作品,电影焦点结局是什么?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  北京网站制作网页,网站升级改版需要多久?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  制作网站公司那家好,网络公司是做什么的?  如何快速搭建高效可靠的建站解决方案?  如何用已有域名快速搭建网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  微信h5制作网站有哪些,免费微信H5页面制作工具?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何快速生成专业多端适配建站电话?  如何用PHP快速搭建高效网站?分步指南  建站之星如何实现网站加密操作?  如何快速登录WAP自助建站平台?  黑客如何通过漏洞一步步攻陷网站服务器?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  已有域名能否直接搭建网站?  如何注册花生壳免费域名并搭建个人网站?  如何在云主机快速搭建网站站点?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  ,在苏州找工作,上哪个网站比较好?  如何挑选优质建站一级代理提升网站排名?  如何在阿里云ECS服务器部署织梦CMS网站?  如何在服务器上三步完成建站并提升流量?  如何在阿里云虚拟主机上快速搭建个人网站?  如何在阿里云域名上完成建站全流程?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  哈尔滨网站建设策划,哈尔滨电工证查询网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。