zoukankan      html  css  js  c++  java
  • 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- 10px;
            _ 10px;
            margin-right: 5px;
            text-align: center;
            white-space: nowrap;
            font-size: 12px;
            font-family: Arial,SimSun;
            padding: 0 3px;
        }
    

      

  • 相关阅读:
    业余无线电A类考试准备笔记
    关于互联网技术基层绩效管理的一些思考
    适合产品经理的十本书 From 俞军
    从敏捷开发到微服务,maybe再到中台
    Golang内存模型
    CSS中的那点事儿(一)--- CSS中的单位2
    CSS中的那点事儿(一)--- CSS中的单位1
    design.js
    model.js
    云技术相关的概念
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/3705632.html
Copyright © 2011-2022 走看看