C#实现分页组件的方法
发布时间 - 2026-01-11 02:53:41 点击率:次分页无论是前端和后端,基本都有广泛应用!下面通过一个小小案例完成这个分页效果:

参数含义:
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#中常用的分页存储过程小结
# 的是
# 当前页
# 超链接
# 每页
# 首页
# 条数
# 都有
# 就不
# 跳转
# 末页
# 贴上
# 一个小小
# 回调
# 差了
# 单击
# 大家多多
# 来用
# 主要是
# 后端
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何用IIS7快速搭建并优化网站站点?
Python面向对象测试方法_mock解析【教程】
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
JavaScript如何实现继承_有哪些常用方法
Laravel怎么实现验证码(Captcha)功能
JavaScript如何实现类型判断_typeof和instanceof有什么区别
使用C语言编写圣诞表白程序
黑客如何利用漏洞与弱口令入侵网站服务器?
如何在阿里云购买域名并搭建网站?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
海南网站制作公司有哪些,海口网是哪家的?
如何在云主机上快速搭建网站?
linux写shell需要注意的问题(必看)
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
JS中对数组元素进行增删改移的方法总结
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
如何用景安虚拟主机手机版绑定域名建站?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel Docker环境搭建教程_Laravel Sail使用指南
Android使用GridView实现日历的简单功能
Android okhttputils现在进度显示实例代码
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
如何在云服务器上快速搭建个人网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
昵图网官方站入口 昵图网素材图库官网入口
Laravel如何集成Inertia.js与Vue/React?(安装配置)
使用spring连接及操作mongodb3.0实例
动图在线制作网站有哪些,滑动动图图集怎么做?
如何快速上传自定义模板至建站之星?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
,交易猫的商品怎么发布到网站上去?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
常州企业网站制作公司,全国继续教育网怎么登录?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】

