博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC分页更有效率
阅读量:5909 次
发布时间:2019-06-19

本文共 5975 字,大约阅读时间需要 19 分钟。

创建Controller控件器与强类型视图呢,还有Models里面的对象实体,相信你们看了我之前发的就能创建好了,在这里呢就不创建了哈亲

 

在用户控件器里面写代码了

下面这个分页的方法

  1. /// <summary> 
  2.        /// 用户信息分页 
  3.        /// </summary> 
  4.        /// <returns></returns> 
  5.        public ActionResult UserDataPage() 
  6.        { 
  7.            EFFristModelEntities ef = new EFFristModelEntities(); 
  8.            int pageIndex = 1;//记录页的条数 
  9.            int pageSize = 3;//每页显示的条数 
  10.            int.TryParse(Request.QueryString["pageIndex"],out pageIndex);//强转一下这个记录页的条数 
  11.            int pageIndexCount =Convert.ToInt32(ef.UserInfo.Count());//获取 总的记录数 
  12.            int pageCount = Convert.ToInt32(Math.Ceiling(pageIndexCount*1.0/pageSize));//获取总的页数 
  13.            //判断页的取值范围 
  14.            if (pageIndex < 1) 
  15.            { 
  16.                pageIndex = 1; 
  17.            } 
  18.            if (pageIndex > pageCount) 
  19.            { 
  20.                pageIndex = pageCount; 
  21.            } 
  22.            //Linq语句 
  23.            var temp = from user in ef.UserInfo 
  24.                       .OrderBy(user => user.ID) 
  25.                       .Skip((pageIndex - 1) * pageSize)//跳过的序列 
  26.                       .Take(pageSize)//返回指定数量的元素 
  27.                       select user; 
  28.            ViewData.Model = temp;//把这个Linq语句读取的数据给这个实体model 
  29.            ViewData["pageIndex"] = pageIndex; 
  30.            ViewData["pageIndexCount"] = pageIndexCount; 
  31.            ViewData["pageCount"] = pageCount; 
  32.            ViewData["pageSize"] = pageSize; 
  33.            return View(); 
  34.        } 

这个在前台循环的展示数据

  1. <%for (int i = 1; i <= Convert.ToInt32(ViewData["pageCount"]); i++) 
  2.      { %> 
  3.        <%:Html.ActionLink(i.ToString(),"UserDataPage",new {
    pageIndex=i}) %><!--这用到了Html.ActionLink链接标签里面的参数有一个文本链接就是所得到的数字,第二个参数为执行的方法,第三个是值--> 
  4.    <%} %> 
  5.    <%:"当前页:" + ViewData["pageSize"] + "数据"%>&nbsp;<%:"共:"+ViewData["pageIndexCount"]+"条" %>&nbsp;<%:"共:"+ViewData["pageCount"]+"页" %>&nbsp; 
  6.  

第二种分页  有样式

这个是在models里面创建的类 是一个静态的类型为HtmlString的 是微软定义的一个类

    1. public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, int totalCount) 
    2.         { 
    3.             var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath; 
    4.             pageSize = pageSize == 0 ? 3 : pageSize; 
    5.             var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数 
    6.             var output = new StringBuilder(); 
    7.             if (totalPages > 1) 
    8.             { 
    9.                 //if (currentPage != 1) 
    10.                 {
      //处理首页连接 
    11.                     output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize); 
    12.                 } 
    13.                 if (currentPage > 1) 
    14.                 {
      //处理上一页的连接 
    15.                     output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize); 
    16.                 } 
    17.                 else 
    18.                 { 
    19.                     // output.Append("<span class='pageLink'>上一页</span>"); 
    20.                 } 
    21.  
    22.                 output.Append(" "); 
    23.                 int currint = 5; 
    24.                 for (int i = 0; i <= 10; i++) 
    25.                 {
      //一共最多显示10个页码,前面5个,后面5个 
    26.                     if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages) 
    27.                     { 
    28.                         if (currint == i) 
    29.                         {
      //当前页处理 
    30.                             //output.Append(string.Format("[{0}]", currentPage)); 
    31.                             output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage); 
    32.                         } 
    33.                         else 
    34.                         {
      //一般页处理 
    35.                             output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint); 
    36.                         } 
    37.                     } 
    38.                     output.Append(" "); 
    39.                 } 
    40.                 if (currentPage < totalPages) 
    41.                 {
      //处理下一页的链接 
    42.                     output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize); 
    43.                 } 
    44.                 else 
    45.                 { 
    46.                     //output.Append("<span class='pageLink'>下一页</span>"); 
    47.                 } 
    48.                 output.Append(" "); 
    49.                 if (currentPage != totalPages) 
    50.                 { 
    51.                     output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize); 
    52.                 } 
    53.                 output.Append(" "); 
    54.             } 
    55.             output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行 
    56.  
    57.             return new HtmlString(output.ToString()); 
    58.         } 
    59. 在前台调用这个方法即可
    60.  
  1. <div class="page_nav"> 
  2.     <%:Html.ShowPageNavigate(Convert.ToInt32(ViewData["pageIndex"]),3,Convert.ToInt32(ViewData["pageCount"])) %> 
  3.    </div> 
  4.    <p> 

这个是样式文件夹 这个呢可以在网上扒的哈,我这不一定你就能用的哦 亲

.paginator     {         font: 12px Arial, Helvetica, sans-serif;         padding: 10px 20px 10px 0;         margin: 0px;     }          .paginator a     {         border: solid 1px #ccc;         color: #0063dc;         cursor: pointer;         text-decoration: none;     }          .paginator a:visited     {         padding: 1px 6px;         border: solid 1px #ddd;         background: #fff;         text-decoration: none;     }          .paginator .cpb     {         border: 1px solid #F50;         font-weight: 700;         color: #F50;         background-color: #ffeee5;     }          .paginator a:hover     {         border: solid 1px #F50;         color: #f60;         text-decoration: none;     }          .paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover     {         float: left;         height: 16px;         line-height: 16px;         min-width: 10px;         _width: 10px;         margin-right: 5px;         text-align: center;         white-space: nowrap;         font-size: 12px;         font-family: Arial,SimSun;         padding: 0 3px;     }     /*****************************2*/     .page_nav,          #commentpage{clear:both; padding:15px 0; color:#666; font:normal 12px/24px Arial; text-align:center;}          .page_nav a,          #commentpage a{display:inline-block; height:22px; margin:0 2px; padding:0 8px; border:solid 1px #dbe5ee; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2px; background:#fff; color:#333; font:normal 12px/22px Arial, Helvetica, sans-serif; cursor:pointer;}              .page_nav strong{display:inline-block; height:24px; margin:0 3px; padding:0 8px; border:none; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2px; background:#c00; color:#fff; font-weight:normal; line-height:24px; text-decoration:none;}              .page_nav a:hover,              .page_nav a.on{height:24px; margin:0 3px; border:none; background:#c00; color:#fff; line-height:24px; text-decoration:none;}              .page_nav a.select{cursor:default;}              .page_nav .view_all{display:block; text-align:center;}              .page_nav .view_all a{height:auto; margin:0; padding:0; border:none; color:#06c; line-height:24px;}              .page_nav .view_all a:hover{height:auto; margin:0; padding:0; background:none;}

 

 

 

转载于:https://www.cnblogs.com/fourleafclover/archive/2013/02/04/MVCPage.html

你可能感兴趣的文章
Tips of ACWS Framework
查看>>
HTTP handlers和Module简介
查看>>
新浪微博开放平台开发-android客户端(1)
查看>>
配置 Project Server 2010 与 Microsoft Exchange Server 2010 结合使用
查看>>
服务器架构之性能扩展-第七章(8)
查看>>
J2EE部署项目至Tomcat报错:Unable to read TLD "META-INF/c.tld"
查看>>
《跟阿铭学Linux》第6章 Linux磁盘管理——课后习题与答案
查看>>
biji001
查看>>
给年轻工程师的十大忠告
查看>>
在SQL2005 轻松配置SSIS包
查看>>
MDT2008部署之一概览
查看>>
正确删除归档日志
查看>>
Spring 3支持RESTful API/APP配置示例
查看>>
Dell R710服务器磁盘恢复数据库一例(记录)
查看>>
一个专业网管的工作笔记(超级珍藏)
查看>>
rails中实现上传功能
查看>>
SQL Server column not allow Null,insert failed
查看>>
运维老鸟分享-学好Linux技术大绝招
查看>>
一次嵌套循环的优化
查看>>
Zabbix 3.2.6 通过Orabbix监控Oracle数据库
查看>>