温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MVC分页让你更爽

发布时间:2020-08-28 06:59:19 来源:网络 阅读:651 作者:杜碧君 栏目:编程语言

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

 

MVC分页让你更爽

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

下面这个分页的方法

  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> 

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

    MVC分页让你更爽

    1. .paginator 
    2.     font12px ArialHelveticasans-serif
    3.     padding10px 20px 10px 0
    4.     margin0px
    5.  
    6. .paginator a 
    7.     bordersolid 1px #ccc
    8.     color#0063dc
    9.     cursorpointer
    10.     text-decorationnone
    11.  
    12. .paginator a:visited 
    13.     padding1px 6px
    14.     bordersolid 1px #ddd
    15.     background#fff
    16.     text-decorationnone
    17.  
    18. .paginator .cpb 
    19.     border1px solid #F50
    20.     font-weight700
    21.     color#F50
    22.     background-color#ffeee5
    23.  
    24. .paginator a:hover 
    25.     bordersolid 1px #F50
    26.     color#f60
    27.     text-decorationnone
    28.  
    29. .paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover 
    30.     floatleft
    31.     height16px
    32.     line-height16px
    33.     min-width10px
    34.     _width10px
    35.     margin-right5px
    36.     text-aligncenter
    37.     white-spacenowrap
    38.     font-size12px
    39.     font-familyArial,SimSun; 
    40.     padding0 3px
    41. /*****************************2*/ 
    42. .page_nav, 
    43.  
    44. #commentpage{clear:bothpadding:15px 0color:#666font:normal 12px/24px Arialtext-align:center;} 
    45.  
    46. .page_nav a, 
    47.  
    48. #commentpage a{display:inline-blockheight:22pxmargin:0 2pxpadding:0 8pxborder:solid 1px #dbe5ee; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2pxbackground:#fffcolor:#333font:normal 12px/22px ArialHelveticasans-serifcursor:pointer;} 
    49.  
    50.     .page_nav strong{display:inline-blockheight:24pxmargin:0 3pxpadding:0 8pxborder:none; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2pxbackground:#c00color:#ffffont-weight:normalline-height:24pxtext-decoration:none;} 
    51.  
    52.     .page_nav a:hover, 
    53.  
    54.     .page_nav a.on{height:24pxmargin:0 3pxborder:nonebackground:#c00color:#fffline-height:24pxtext-decoration:none;} 
    55.  
    56.     .page_nav a.select{cursor:default;} 
    57.  
    58.     .page_nav .view_all{display:blocktext-align:center;} 
    59.  
    60.     .page_nav .view_all a{height:automargin:0padding:0border:nonecolor:#06cline-height:24px;} 
    61.  
    62.     .page_nav .view_all a:hover{height:automargin:0padding:0background:none;} 

     

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI