zoukankan      html  css  js  c++  java
  • MvcPager.dll使用实现无刷新分页以及MvcPager的Nuget程序包实现刷新分页

    无刷新分页:

    1.引入JQuery的NuGet程序包

    2.引入程序包

    3.引入MvcPager.dll  ,MvcPager.dll文件下载链接http://pan.baidu.com/s/1hsvBYcc  密码:baws

    4.引入MvcPager.js 和MvcPager.min.js  文件下载链接(同上3所示)

    5.代码编写

    Controller:

    public class HomeController : Controller
        {
            //
            // GET: /Home/
            int pageSize = 2;
            [HttpGet]
            public ActionResult Index(int pageIndex = 1)
            {
                var list = PrepareUserList();   //list为取到的所有数据
                PagedList<User> p_list = list.ToPagedList(pageIndex, pageSize);
                if (Request.IsAjaxRequest())   //判断请求是否为Ajax请求
                {
                    return PartialView("ShowPart", p_list);
                }
                return View(p_list);
            }
            [HttpPost]
            public ActionResult Index(string keyword,int pageIndex = 1)
            {
                var list = PrepareUserList();
                PagedList<User> p_list = list.ToPagedList(pageIndex, pageSize);
                if (Request.IsAjaxRequest())
                {
                    p_list = string.IsNullOrEmpty(keyword) ? p_list : list.Where(p=>p.Name.Contains(keyword)).ToPagedList(pageIndex, pageSize);
                    return PartialView("ShowPart",p_list);
                }
                return View(p_list);
            }
    
    //此类是为了制造数据,方便可以不用从数据库调数据也能运行程序,若从数据库取数据则不需要此类
            public List<User> PrepareUserList()
            {
                List<User> list = new List<User>();
                User u1 = new User() { Id = 1, Address = "sda", Name = "das" };
                User u11 = new User() { Id = 2, Address = "a", Name = "gffs" };
                User u12 = new User() { Id = 3, Address = "b", Name = "dfts" };
                User u13 = new User() { Id = 4, Address = "c", Name = "dfg" };
                User u14 = new User() { Id = 5, Address = "sda", Name = "vb" };
                User u15 = new User() { Id = 6, Address = "sa", Name = "hj" };
                User u16 = new User() { Id = 7, Address = "eda", Name = "ui" };
                User u10 = new User() { Id = 8, Address = "sda", Name = "we" };
                User u110 = new User() { Id = 9, Address = "a", Name = "rf" };
                User u120 = new User() { Id = 10, Address = "b", Name = "hy" };
                User u130 = new User() { Id = 11, Address = "c", Name = "jy" };
                User u140 = new User() { Id = 12, Address = "sda", Name = "nm" };
                User u150 = new User() { Id = 13, Address = "sa", Name = "qr" };
                User u160 = new User() { Id = 14, Address = "eda", Name = "ts" };
                list.Add(u1);
                list.Add(u11);
                list.Add(u12);
                list.Add(u13);
                list.Add(u14);
                list.Add(u15);
                list.Add(u16);
                list.Add(u10);
                list.Add(u110);
                list.Add(u120);
                list.Add(u130);
                list.Add(u140);
                list.Add(u150);
                list.Add(u160);
                return list;
            }
        }
    HomeController.cs

    Index视图:

    @{
        Layout = null;
    }
    @using Webdiyer.WebControls.Mvc;
    @model PagedList<N_Refresh.Models.User>
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <link href="~/Content/bootstrap.min.css" rel="stylesheet" />
        <script src="~/Scripts/jquery-1.9.1.js"></script>
        <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
        <script src="~/Scripts/MvcPager.js"></script>
    /*注意:这三个script文件是必须引用的文件,否则不能实现无刷新分页,Ajax请求过不去*/
    </head>
    <body>
        <div>
            @using (Ajax.BeginForm("Index", "Home", new RouteValueDictionary { { "id", "" } },
                new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "list", InsertionMode = InsertionMode.Replace }, new RouteValueDictionary { {"id","searchForm"} }))
            {
                <div class="row">
                    <span class="col-md-2">姓名:</span>
                    <input name="keyword" type="text" class="col-md-3" />
                    <input type="submit" class="btn btn-primary btn-sm input-inline" value="搜索" />
                </div>
            }
        </div>
        <div id="list">
            @{
                Html.RenderPartial("ShowPart", Model);
            }
        </div>
    <!--ShowPart是分部视图的名称 -->
    </body>
    </html>
    Index.cshtml

    分部视图ShowPart.cshtml

    @using Webdiyer.WebControls.Mvc;
    @model PagedList<N_Refresh.Models.User>
    
    <table class="table table-bordered table-hover center-block top">
        <tr>
            <td>姓名</td>
            <td>地址</td>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Name</td>
                <td>@item.Address</td>
            </tr>
        }
    </table>
    <div>
        <div style="float:left;50%;">当前页 @Model.CurrentPageIndex 共 @Model.TotalPageCount 页,共 @Model.TotalItemCount 条记录 </div>
        @Ajax.Pager(Model, new PagerOptions
       {
           PageIndexParameterName = "pageIndex",
           ActionName = "Index",
           HtmlAttributes = new Dictionary<string, object> { { "style", "float:right" } },
           ContainerTagName = "ul",
           CssClass = "pagination",
           CurrentPagerItemTemplate = "<li class="active "><a href="javascript:void(0)">{0}</a></li>",
           DisabledPagerItemTemplate = "<li class="disabled"><a>{0}</a></li>",
           PagerItemTemplate = "<li>{0}</li>",
           Id = "bootstrappager",
           AutoHide = false,
           FirstPageText = "首页",
           NextPageText = "下一页",
           PrevPageText = "上一页",
           LastPageText = "末页"
       },
           new MvcAjaxOptions
           {
               UpdateTargetId = "list",         //此为无刷新分页做准备,list为数据表格外层包围的div的id
               HttpMethod = "Post",
               DataFormId = "searchForm"        //此为无刷新搜索做准备,searchForm为搜索的form的id
           })
    </div>
    View Code

    6.忘记说了,模型类User.cs

    public class User
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Address { get; set; }
        }
    View Code

    6其实应该放在Controller之前,

    至此,无刷新分页和搜索就完成了,

    程序代码实现链接:http://pan.baidu.com/s/1eSh2VRW  密码:g1b1

    欢迎大家进行批评指正

  • 相关阅读:
    【Navicat】查看历史执行的SQL
    什么是webpack模块化构建工具
    靠边的列表如果没有设置margin-left:20px,那么是看不到列表序号的。
    在博客园中复制代码到网页中,有时候会存在异常,如下:
    / WebAPP开发与小程序 / 步骤一 · 4-5 地图搜索与poi结合(2)
    忘记样式属性对应的值时,可以使用以下方法进行操作
    //点击按钮加减音频音量到最小会出现bug什么意思???
    组件化网页开发 3步骤 / 20门课
    position:absolute 按钮左右分布:left:0 和 right:0 以及雪碧图
    查看引入的文件是否成功
  • 原文地址:https://www.cnblogs.com/myyBlog/p/6519577.html
Copyright © 2011-2022 走看看