ASP.NET MVC分页

ASP.NET MVC+bootstrap paginator分页 之前做过一个bootstrap table的分页的项目,但是今天自己打算写着一个网站来玩儿,但是遇到的问题就是不能用table分页但是最好Ajax分页,经过查阅网上的资料,本人得出了解决方案,马上上代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy 阅读详情

这个参考了传智播客的视频源码,并且在基础上得到了改进,本人代码写的比较烂,大神轻喷

/// <summary>
        /// 自定义分页控件 ,在@Html上扩展的一个方法
        /// </summary>
        /// <param name="htmlhelper">当前@Html对象</param>
        /// <param name="area">区域名称</param>
        /// <param name="controller">控制器名称</param>
        /// <param name="action">方法名称</param>
        /// <param name="pagesize">每页显示数据的条数</param>
        /// <param name="totalcount">当前分页列表的所有数据总条数</param>
        /// <returns></returns>
        public static MvcHtmlString PageBarBulider(this HtmlHelper htmlhelper, string area, string controller, string action, int pagesize, int totalcount)
        {
            //从url参数pageindex 获取当前的页索引
            string currentpageindex = HttpContext.Current.Request.QueryString["pageindex"];
            int icurrentPi = 1;
            //由于第一次进入某个列表页面是不会带有pageindex和pagesize参数的,所以currentpageindex 有可能为空
            //当为空的时候应该赋值1才正常
            if (string.IsNullOrEmpty(currentpageindex))
            {
                icurrentPi = 1;
            }
            else
            {
                icurrentPi = Convert.ToInt32(currentpageindex);
            }




            //1.0 计算出当前列表总共有多少页数据
            decimal pagecount = Math.Ceiling((totalcount / Convert.ToDecimal(pagesize)));


            //2.0 拼装当前分页控件使用的url
            string areaPix = string.IsNullOrEmpty(area) ? "" : "/" + area;
            string urlfmt = areaPix + "/" + controller + "/" + action + "?pageindex={0}&pagesize={1}";


            StringBuilder html = new StringBuilder(200);
            if (icurrentPi >= 5 && icurrentPi <= pagecount - 4)//根据自己的需求
            {
                html.Append("<div class='col-lg-6 col-lg-offset-5' id='pagebar'><ul class='pagination pagination - sm'>");
                
                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi == 1 ? 1 : icurrentPi - 1, pagesize) + "\">&laquo;</a></li>");
                //获取上一页的链接
                html.Append("<li><a href=\"" + string.Format(urlfmt, 1, pagesize) + "\">" + 1 + "</a></li>");
                //第一页


                html.Append("<li><a href='javascript:void(0)'>...</a></li>");


                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi - 1, pagesize) + "\">" + (icurrentPi - 1) + "</a></li>");
                //当前页的上一页
                html.Append("<li class='active'><a  href=\"" + string.Format(urlfmt, icurrentPi, pagesize) + "\">" + icurrentPi + "</a></li>");
                //当前页
                html.Append("<li ><a href=\"" + string.Format(urlfmt, icurrentPi + 1, pagesize) + "\">" + (icurrentPi + 1) + "</a></li>");
                //当前页的下一页


                html.Append("<li><a href='javascript:void(0)'>...</a></li>");


                html.Append("<li><a href=\"" + string.Format(urlfmt, pagecount, pagesize) + "\">" + pagecount + "</a></li>");
                //最后一页
                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi == 1 ? 1 : icurrentPi + 1, pagesize) + "\">&raquo;</a></li>");
                //获取下一页的链接
                
                html.Append("</ul></div>");
            }
            else if (icurrentPi>pagecount-4&&pagecount>7)
            {
                html.Append("<div class='col-lg-6 col-lg-offset-5' id='pagebar'><ul class='pagination pagination - sm'>");
                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi == 1 ? 1 : icurrentPi - 1, pagesize) + "\">&laquo;</a></li>");
                //获取上一页的链接
                html.Append("<li><a href=\"" + string.Format(urlfmt, 1, pagesize) + "\">" + 1 + "</a></li>");
                //第一页
                html.Append("<li class='disabled'><a href='javascript:void(0)'>...</a></li>");


                for (int i = 5; i >= 0; i--)
                {
                    if (icurrentPi == (pagecount - i))
                    {
                        html.Append("<li class='active'><a href=\"" + string.Format(urlfmt, pagecount - i, pagesize) + "\">" + (pagecount - i) + "</a></li>");
                    }
                    else
                    {
                        html.Append("<li><a href=\"" + string.Format(urlfmt, pagecount - i, pagesize) + "\">" + (pagecount - i) + "</a></li>");
                    }
                }
                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi == 1 ? 1 : icurrentPi + 1, pagesize) + "\">&raquo;</a></li>");
                //获取下一页的链接
               
                html.Append("</ul></div>");
            }
            //页面第一次请求的时候,执行最初的代码
            else
            {
             
                html.Append("<div class='col-lg-6 col-lg-offset-5' id='pagebar'><ul class='pagination pagination - sm'>");
                html.Append("<li ><a href=\"" + string.Format(urlfmt, icurrentPi == 1 ? 1 : icurrentPi - 1, pagesize) + "\">&laquo;</a></li>");
                if (pagecount > 7)
                {
                    for (int i = 1; i < 6; i++)
                    {
                        if (icurrentPi == i)
                        {
                            html.Append("<li class='active'><a href=\"" + string.Format(urlfmt, i, pagesize) + "\">" + i + "</a></li>");
                        }
                        else
                        {
                            html.Append("<li><a href=\"" + string.Format(urlfmt, i, pagesize) + "\">" + i + "</a></li>");
                        }
                    }
                    html.Append("<li><a href='javascript:void(0)'>...</a></li>");
                }
                else
                {
                    for (int i = 1; i <= pagecount - 1; i++)
                    {
                        html.Append("<li><a href=\"" + string.Format(urlfmt, i, pagesize) + "\">" + i + "</a></li>");
                    }
                }
                html.Append("<li><a href=\"" + string.Format(urlfmt, pagecount, pagesize) + "\">" + pagecount + "</a></li>");
                html.Append("<li><a href=\"" + string.Format(urlfmt, icurrentPi == pagecount ? pagecount : icurrentPi + 1, pagesize) + "\">&raquo;</a></li>");
                
                html.Append("</ul></div>");
            }


            return new MvcHtmlString(html.ToString());
        }


控制器里面的代码

public ActionResult index()
        {
            string pageIndex = Request.QueryString["pageindex"];
            string pagesize = Request.QueryString["pagesize"];
            int ipageIndex = 1;
            int ipageSize = 5;
            if (!int.TryParse(pageIndex, out ipageIndex)){
                ipageIndex = 1;
            }
            else if (!int.TryParse(pagesize, out ipageSize))
            {
                ipageSize = 5;
            }
            OnlineBorrowEntities db = new OnlineBorrowEntities();
            int skip = (ipageIndex-1) * ipageSize;
            var list = db.UseableInfo.OrderBy(c=>c.id).Skip(skip).Take(ipageSize).ToList();
            ViewData["aviliableRoomInfo"] = list;
            return View();
        }


前端验证

window.onloaf=function()

{

var oDiv = document.getElementById('pagebar');
                var oUl = oDiv.getElementsByTagName('ul')[0];
                var aLi = oUl.getElementsByTagName('li');
                if (aLi[1].getAttribute('class') == 'active')
                {
                    var A = aLi[0].getElementsByTagName('a')[0];
                    A.setAttribute('href', 'javascript:void(0)');
                }
                else if (aLi[aLi.length - 2].getAttribute('class') == 'active')
                {
                    var A = aLi[aLi.length-1].getElementsByTagName('a')[0];
                    A.setAttribute('href', 'javascript:void(0)');
                }

}


ASP.NET MVC5 PagedList分页示例 ASP.NET MVC是目前ASP.NET开发当中轻量级的Web开发解决方案,在ASP.NET MVC概述这篇译文当中,已经详细的介绍了ASP.NET MVC与Web Forms的区别以及各自的适用场景。由于ASP.NET MVC尤其适合网站的开发(Web Forms更适合业务系统的开发),目前成为很多网站开发者的首先框架。这里举个典型的例子(表格的分页),以此熟悉一下ASP.NET MVC的开发 阅读详情

相关推荐

ASP.NET MVC分页的实现方法

主要为大家详细介绍了ASP.NET MVC分页的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

学习ASP.NET MVC(十一)——分页

      在这一篇文章中,我们将学习如何在MVC页面中实现分页的方法。分页功能是一个非常实用,常用的功能,当数据量过多的时候,必然要使用分页。在今天这篇文章中,我们学习如果在MVC页面中使用PagedList.Mvc包来实现分页功能。 1)  安装PagedList.Mvc         首先,我们需要安装分页组件包,在Visual Studio 2010中点击【项目】-【管理NuGet程...

weixin_33936401的博客 314

GPT Researcher 的win docker安装攻略

github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查!

weixin_43818488的博客 1127

ASP.NET MVC 的分页

一,定义分页器类   在ASP.NET MVC中,分页的数据源可能是各种不同的类型,所以最好使用泛型来定义。 public class PagingHelper    二,基本三要素   实现分页人所共知的三个基本属性: DataSource:数据源,要知道数据源共计多少条数据,会对应一个数据源的方法-Count(), PageSize:来描述每页显示的记录的条数。 Page

那一抹、璀璨 1102

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1216

银河麒麟V10 SP3下NFS客户端挂载失败?5个常见问题排查与修复

本文针对银河麒麟V10 SP3系统中NFS客户端挂载失败的常见问题,提供了5个实战排查方案。从基础服务状态检查到防火墙配置、版本兼容性、/etc/fstab设置及权限映射,详细解析了问题根源与解决方案,帮助用户快速恢复NFS文件共享功能。

weixin_42525005的博客 363

asp.net mvc 分页

手学类库, //css样式表 <style> ul.pagination { display: inline-block; padding: 0; margin: 0; } ul.pagination li { ...

愤怒的菜鸟 3119

【华为OD机考真题】- 斗地主之顺子(B卷-200分)(Java版)

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新

**My Coding Family** 816

ASP.NET MVC程序实现真分页(案例详细,值得收藏)

MVC中使用LINQ的查询语法结合BootStarp框架实现MVC分页功能的实现

code_xu的博客 1719

NVIDIA AI 学习与认证指南:从入门到精通

NVIDIA的AI学习与认证体系,凭借其先进的技术背景、丰富的课程资源以及强大的行业认可度,已成为AI学习者和从业者的宝贵资源。通过深入学习NVIDIA的课程和获得认证,学习者可以快速掌握最前沿的AI技术,提升自己的职业竞争力。从基础课程到专业认证,NVIDIA为不同层次的学习者提供了量身定制的学习资源,帮助他们掌握AI的核心技能,提升职业竞争力。是其中的一个亮点,它结合了信息检索与生成式AI的能力,使AI可以从外部知识库中实时提取信息,生成更具深度和准确性的内容。,帮助学习者快速掌握该领域的核心技术。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1881

【目标检测】基于yolov5的道路坑洼检测(附代码和数据集)

基于yolov5的道路坑洼检测(附代码和数据集)

学无止境、积少成多、厚积薄发 4620

ASP.NET MVC分页【无搜索条件的分页设计】

ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList、PagedList.Mvc进行分页。   1. 通过NuGet引用PagedList.Mvc   在安装引用PagedList.Mvc的同时会安装引用PagedList。   2. PagedList.Mvc基本使用   ProvinceController.cs:

马里奥的专栏 795

手把手教你在飞牛 NAS 上部署自有图床,含Python调用接口

📸 想在飞牛 NAS 上部署图床?这篇教程超适合小白!从安装到使用,步骤清晰~

XiaoqiangClub的博客 2345

ASP.net MVC分页实例

第一步:写         public ActionResult NewsList(int pgindex = 1)         {             int counts = 0;             int pageCount = 0;             ViewBag.newsList = new MvcHtmlString(NewsListMore("主题,

大猴子的专栏 2117

【AI智能体】Codex 开发聚合搜索应用项目实战操作详解

Codex 开发聚合搜索应用项目实战操作详解

congge 3097

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于IPagedList 的 Asp.Net MVC 分页

上次写过一篇MVC分页的自己用的一个ASP.Net MVC分页拿出来分享下现在发一个改进版里面用到的IPagedList我自己也记不清是从哪里COPY来的了。呵呵这里我就不把IPagedList的代码贴出来了,要使的下载DEMO自己拿吧。  后台对数据的分页public ActionResult Index([DefaultValue(1)]int p,[Defau

zhdd1234的专栏 787

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

asp.net mvc强大的分页控件MvcPager

<br />http://www.itpob.cn<br />不管使用什么来开发程序,都少不了需要做分页,目前使用asp.net mvc开发的web应用程序的人越来越多了,相应的辅助,提高开发效率的helper方法、控件都将会出现。今天我向大家介绍一款在asp.net mvc框架中使用的分页控件。本人也是在新年的时候初次使用,但是一直没有推荐给大家。利用五一休息时间也就介绍给大家。声明我与博杨计算机有限公司无任何关系只是觉得这个分页控件很好用,并且功能强大,在这里是真的只为介绍这款分页控件。<br />另外

我的地盘 1386

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

asp.net mvc 简单分页实现

分页首先最重要的两个参数就是当前页和页面大小。 在Controller中: 分页 public ActionResult Test(string index) { if (string.IsNullOrEmpty(

z767327552的专栏 2307

ASP.NET MVC分页、ASP.NET MVC Ajax分页组件1.0发布!

新年到!先给博客园的朋友们拜个年!祝大家新年快乐! 在实际项目的开发过程中!发现很多人对ASP.NET MVC框架下的分页实现感到吃力或者感到繁琐!故在元旦假期为大家写了个ASP.NET MVC分页组件!该分页组件现中包含ASP.NET MVC AJAX分页以及ASP.NET MVC 普通分页!现正式发布供大家使用! 因本人水平有限!使用之中发现不足之处还望大家指...

weixin_34253126的博客 340

【ASP.NET】分页 使用PagedList.Mvc

在管理NuGet程序包为项目安装PagedList.Mvc 在Controller中引入命名空间using PagedList; 获取分页数据 public ActionResult Index(int? page) { //第几页 int pageNumber = page ?? 1; //每页显示数据条数 int pageSize = 2; ...

GreAmbWang的博客 900

Asp.Net Mvc 分页

namespace CPS.Mvc//此片命名空间很重要 { /// <summary> /// 分页按钮控件 /// </summary> public static class HtmlHelperPaginationExtensions { /// <summary> /// 呈现普通分页按钮 /// </summary> /// <param.

260

详解ASP.NET MVC pager 分页

ASP.NET MVC框架已经进入2.0时代,本文将从ASP.NET MVC数据分页谈起,希望能对大家有所帮助。 在网页上进行表格资料或其他显示资料的分页是一种十分常见的需求,以前我们有 GridView 或 DataPager 可以帮我们自动分页,虽然到了 ASP.NET MVC 一切全部重头来过,但我们也不用真的那麽辛苦的自己实做分页,因为早就有人帮我们写好程式并开放原始码分享给这个世界了。

wilsonke的专栏 1457

ASP.NET MVC 简单的分页思想与实现

  作为一个程序猿,数据分页是每个人都会遇到的问题。解决方案更是琳琅满目,花样百出。但基本的思想都是差不多的。   下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MVC中的简单实现与应用。 一,定义分页器类   在ASP.NET MVC中,分页的数据源可能是各种不同的类型,所以最好使用泛型来定义。 public class P...

diaoqin4202的博客 552

ASP.NET MVC分页的实现

在ASP.NET中,GridView控件本身就带有分页的功能,只要把当前页面的索引值赋给GridView的PageIndex就可以实现了分页,至于数据怎么分页,全都由GridView封装起来了。 在ASP.NET MVC中分页的实现就只能靠自己来设计了。首先来说一下分页的原理。现在有一个张news表,中间有很多信息,我们假设一页显示5条记录,这样,页面数量=总记录数/5;这里,如果出现小数,得进...

weixin_30819085的博客 601
下一篇: Bootstrap响应式图片的进一步处理
遛狗的代码
博客等级 码龄11年 10粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值