温馨提示×

温馨提示×

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

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

MVC异步分页的示例分析

发布时间:2021-09-16 16:07:48 来源:亿速云 阅读:172 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关MVC异步分页的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如图:

MVC异步分页的示例分析 

1、控制器代码 

//     // GET: /AjaxUser/     shopEntities shop = new shopEntities();     public ActionResult Index()     {       return View();     }     public ActionResult loadjson()     {       int pageSize = Request["pageSize"] == null ? 10 : int.Parse(Request["pageSize"]);       int pageIndex = Request["pageIndex"] == null ? 1 : int.Parse(Request["pageIndex"]);       int totalCount = shop.tbl_admin.Count();         //给前台userinfo所有的数据,并且是json格式       var allorder = shop.tbl_admin.OrderBy(u=>u.id)         .Skip(pageSize*(pageIndex-1))         .Take(pageSize)         .ToList();       //接受一个对像,内部把此对象使用javaScript序列化类对象志字符串,发送到前台       var data = from u in allorder select new { u.id,u.realname,u.sex};       string strNav = PageNavHelper.ShowPageNavigate(pageIndex,pageSize,totalCount);       var result = new {Data=data, NavStr=strNav };       return Json(result, JsonRequestBehavior.AllowGet);     }

2、Html代码 

@{   Layout = null; } <!DOCTYPE html> <html> <head>   <meta name="viewport" content="width=device-width" />   <title>Index</title>   <link href="~/Content/NavPage.css" rel="stylesheet" />   <script src="~/Scripts/jquery-1.8.2.min.js"></script>   <script src="~/Scripts/jquery-ui-1.8.24.js"></script>   <script src="~/Scripts/jquery.easyui.min.js"></script>   <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>   <script src="~/Scripts/jquery.validate.unobtrusive.js"></script>   <script type="text/javascript">     $(function () {       //页面加载完成后从后如加载当前页数据       initTable();     });   //初始化表格数据     function initTable(queryData)      {       $.getJSON("/AjaxUser/loadjson",queryData, function (data) {         var tb = $("#tbList");         //先移除旧的,添加新的         $("#tbList tr[type=data]").remove();         for (var i = 0; i < data.Data.length; i++)         {            var strTr = "<tr type='data'>";           strTr += "<td>" + data.Data[i].id + "</td>";           strTr += "<td>" + data.Data[i].realname + "</td>";           strTr += "<td>" + data.Data[i].sex + "</td>";           strTr += "<td><a UId='" + data.Data[i].id + "' href='javascript:void(0)'>修改</a>" +             "<a UId='" + data.Data[i].ID + "' href='javascript:void(0)'>删除</a></td>";           strTr += "</tr>";           tb.append(strTr);         }         $("#Nav").html(data.NavStr);         //绑定分页标签的点击事件         $(".pageLink").click(function () {           //把页码弹出来           var strHref = $(this).attr("href");           var queryStr = strHref.substr(strHref.indexOf('?') + 1);           //alert(queryStr);           initTable(queryStr);           return false;         });       });     }   </script> </head> <body>   <div>     <table id="tbList">       <tr>         <td>id</td>         <td>姓名</td>         <td>性别</td>         <td>操作</td>       </tr>     </table>     <div id="Nav" class="paginator">      </div>        </div> </body> </html>

3、分页类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; namespace MvcTest4.Models {   public class PageNavHelper   {     //主要就是输出分页的超级链接的标签     //自定义分页Helper扩展     public static string ShowPageNavigate(int currentPage, int pageSize, int totalCount)     {       var redirectTo = HttpContext.Current.Request.Url.AbsolutePath;       pageSize = pageSize <= 0 ? 3 : pageSize;       var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数        var output = new StringBuilder();       if (totalPages > 1)       {         //if (currentPage != 1)         {//处理首页连接           output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);         }         if (currentPage > 1)         {//处理上一页的连接           output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);         }         else         {           // output.Append("<span class='pageLink'>上一页</span>");         }         output.Append(" ");         int currint = 5;         for (int i = 0; i <= 10; i++)         {//一共最多显示10个页码,前面5个,后面5个           if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)           {             if (currint == i)             {//当前页处理               //output.Append(string.Format("[{0}]", currentPage));               output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);             }             else             {//一般页处理               output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);             }           }           output.Append(" ");         }         if (currentPage < totalPages)         {//处理下一页的链接           output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);         }         else         {           //output.Append("<span class='pageLink'>下一页</span>");         }         output.Append(" ");         if (currentPage != totalPages)         {           output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);         }         output.Append(" ");       }       output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行         return output.ToString();     }   } }

4、分页CSS 

body { }  .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;   }

关于“MVC异步分页的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

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

mvc
AI