基于jQuery与C# MVC的自定义分页组件实现
作者:橙子时间:2026-10-21 22:39:02浏览:190
本文介绍了一种结合前端jQuery与CSS、后端C# MVC的分页解决方案。通过自定义CSS美化分页控件,利用jQuery动态计算弹出菜单位置,并封装C#分页类处理页码逻辑。开发者可直接在控制器中调用该类获取数据并替换HTML占位符,实现灵活的分页效果。
自定义分页组件概述
鉴于市面上现有的分页插件未能完全满足需求,本文分享了一套自行开发的分页方案,该方案设计灵活,能够与MVC框架及数据库良好配合使用。
具体实现效果如下图所示。

首先定义CSS样式,若现有风格不符合项目要求,开发者可忽略此部分并自定义样式。
前端CSS样式定义
.pagelist {padding:10px 0; text-align:center;}
.pagelist span,.pagelist a{ border-radius:3px; border:1px solid #dfdfdf;display:inline-block; padding:5px 12px;}
.pagelist a{ margin:0 3px;}
.pagelist span.current{ background:#09F; color:#FFF; border-color:#09F; margin:0 2px;}
.pagelist a:hover{background:#09F; color:#FFF; border-color:#09F; }
.pagelist label{ padding-left:15px; color:#999;}
.pagelist label b{color:red; font-weight:normal; margin:0 3px;}
.popup
{
display: none;
list-style-type: none;
overflow: hidden;
position: absolute;
}
/*显示弹出菜单*/
.popupmenu li:hover ul {
display: block;
z-index:2;
/*left:840px;*/
}
.popupmenu li ul:hover {
display: block;
z-index:2;
/*left:840px;*/
}
在HTML结构中,需引入jQuery库以支持后续脚本交互。
HTML结构构建
<div class="pagelist" style="margin-top:500px">
<ul class="popupmenu">
<li>
<a href="p.url?page=1" rel="external nofollow" >首页</a>
<a href="p.url?page=p.up" rel="external nofollow" >上一页</a>
<a id="pop" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="popup()">1/2</a>
<ul id="popup" class="popup">
<li>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >1/2</a>
</li>
<li>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2/2</a>
</li>
</ul>
<a href="p.url?page=p.next" rel="external nofollow" >下一页</a>
<a href="p.url?page=p.sum" rel="external nofollow" >尾页</a>
</li>
</ul>
</div>
接下来是核心的JavaScript逻辑,负责处理分页交互与动态定位。
jQuery交互逻辑
<script type="text/javascript">
// 获取id为pop的元素的位置
var popX = $('#pop').offset().left;
// alert($('#pop').height());
var popY = $('#pop').offset().top;
var lineheight = $('#pop').height();
var linumber = $('#popup li').length;
// alert(lineheight);
// 设置id为popup元素的位置
$("#popup").css({ "position": "fixed", "top": (popY - (linumber * 27.5)) + "px", "left": (popX - 23) + "px", "line-height": lineheight + "px" });
</script>
后端提供一个C#分页类,用于封装页码、URL及导航状态等数据。
后端C#分页类封装
public partial class page
{
// 当前页
public int pagenow { get; set; }
// 总页数
public int sum { get; set; }
// 地址
public string url { get; set; }
// 上一页
public int up { get; set; }
// 下一页
public int next { get; set; }
}
集成使用指南
实际使用时,只需在MVC控制器中获取数据,利用分页类生成相关参数,并替换HTML中对应的占位元素即可生效。
以上内容为本文的全部分享,希望能为读者的学习提供参考,欢迎继续支持本站获取更多技术资源。
作者最新文章
JS脚本在App中运行报错怎么解决
2026-11-04 23:11:03
JS怎么使用padStart方法给数字补零
2026-11-04 11:12:03
JS是什么意思?JavaScript全称及基本定义
2026-11-04 08:05:29
JS 使用 toFixed(1) 保留一位小数的基本用法与注意事项
2026-11-03 18:34:57
JS字符串转整数:parseInt与Number的区别及用法
2026-11-03 17:26:54
