`

MVC 分页 JQuery Pager

阅读更多

导入的包

    <script type="text/javascript" src="@Url.Content("~/Content/Admin/js/jquery/jquery.pager.js")"></script>
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Admin/Pager.css")" />

 

Index.aspx

@{
    ViewBag.Title = "Index";
}
@using com.fh.Models
@model DemoList
<div id="sourcelist">
  @* @{
       Html.RenderAction("PageSelected", new { cuurentPageIndex = 0 });
    }*@

    @Html.Partial("_TableList",Model)
</div>
<script type="text/javascript">
    $(document).ready(function () {
        PageClick(1); //$(".itemspager").pager({ pagenumber: currentPageNumber, pagecount: totalPageNumber, buttonClickCallback: PageClick });
    });

</script>

_TableList.cshtml(PartialView)

@using com.fh.Models
@model DemoList
<table>
        <thead>
            <tr>
                <td>
                    ID
                </td>
                <td>
                    Name
                </td>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.DataSource)
            {
                <tr>
                    <td>@item.ID
                    </td>
                    <td>@item.Name
                    </td>
                </tr>
            }
        </tbody>
    </table>

    <div class="clear">
</div>
@if (Model.TotalItems > 0)
{
    if (Model.TotalItems <= 5)
    {
    <div class="pagination">
        <div class="results">
            Showing 1 to @Model.TotalItems of @Model.TotalItems (1 Pages)</div>
    </div>
    }
    else
    { 
    <div class="itemspager pagination">
    </div>
    }
}
<div class="clear">
</div>


<script type="text/javascript" language="javascript">
   var currentPageNumber = 1;
    var numPerPage =5;
    var totalItems=@Model.TotalItems;
    var totalPageNumber = Math.ceil(totalItems / numPerPage);
    var url="@Url.Action("PageSelected","Demo")";
var PageClick = function (pageclicknumber) {
     currentPageNumber=pageclicknumber;
       $.ajax({
                    async: false,

                    type: "Post",

                    url:url,

                    data: ({ cuurentPageIndex: currentPageNumber }),//will be more parameters when you needed.

                    dataType: "html",
                    success: function (responseData) {
                        $("#sourcelist").html(responseData); //render table
                          totalitems=@Model.TotalItems;
                          totalPageNumber = Math.ceil(totalItems / numPerPage);
                            $(".itemspager").pager({ pagenumber:pageclicknumber, pagecount:totalPageNumber, buttonClickCallback: PageClick });
                    }
               });         
};

   
</script>
 

ViewModel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace com.fh.Models
{
    public class DemoList
    {
        public DemoList()
        {
            DataSource = new List<Demo>();
        }
        public List<Demo> DataSource { get; set; }
        public int TotalItems { get; set; }
        public int CurrentPageIndex { get; set; }
    }
    public class Demo
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
}

 control

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using com.fh.Models;

namespace com.fh.Controllers
{
    public class DemoController : _Base
    {
        public readonly int numberPerPage = 5;
        public ActionResult Index()
        {
            DemoList m = new DemoList();
            //m.DataSource = CreatePageListTestDate();
            //return View(m);
            return View(m);
        }
        public ActionResult PageSelected(int cuurentPageIndex)
        {
            DemoList m = new DemoList();
            m.CurrentPageIndex = cuurentPageIndex;
            m.DataSource = CreatePageListTestDate().Skip((cuurentPageIndex-1) * numberPerPage).Take(numberPerPage).ToList();
            m.TotalItems = CreatePageListTestDate().Count;
            return PartialView("_TableList", m);
        }
        public List<Demo> CreatePageListTestDate()
        {
            List<Demo> r = new List<Demo>();
            for (int i = 1; i < 100; i++)
            {
                r.Add(new Demo
                {
                    ID = i,
                    Name = "test name " + i,
                });
            }
            return r;
        }
    }
}
0
0
分享到:
评论

相关推荐

    jQueryPager jquery在.net下无刷新分页

    《jQueryPager:jQuery在.NET环境下的无刷新分页技术详解》 在当今的Web开发领域,用户界面的交互性和响应速度成为了评判一个网站或应用程序质量的重要标准。无刷新分页技术便是提升用户体验的一种有效手段,它能够...

    MVC分页详解(包括整个流程步骤,代码与注解)

    在ASP.NET MVC框架中,实现分页功能是一个常见的需求,主要目的是提高网页的加载速度和用户体验。本篇文章将详细介绍如何在MVC应用中实现分页,包括从创建Model分页模型到在View中展示的整个流程,以及涉及到的代码...

    mvc 分页控件

    MVC分页控件的实现方式多种多样,可以根据项目需求选择合适的方法。以下是对这个主题的详细讨论: 1. **基本概念** - **MVC(Model-View-Controller)**:是一种设计模式,用于组织应用程序的结构,分离关注点,...

    MvcPager分页示例MVC2.0源码

    该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过站长不断完善和改进后推出的比较成熟而且功能强大的ASP.NET MVC分页解决方案 MvcPager主要功能有: 1、实现最...

    ASP.NET利用MVC框架及JQuery技术实现登录、分页及等待

    ASP.NET MVC提供了辅助方法如`Html.Pager`或`Html.PageLinks`来帮助创建分页链接。同时,后端可以配合使用`Skip()`和`Take()`方法来处理数据库查询,只获取当前页的数据,降低服务器负载。 4. **JQuery的分页实现**...

    MVC分页扩展开源(支持AJAX分页)

    MVC分页基础 在MVC中,我们通常在Controller层处理分页逻辑,使用View展示数据,而Model则负责承载和操作数据。以下是一个简单的分页示例: - **Controller**: 创建一个方法,接收页码和每页记录数作为参数,然后...

    mvc分页事例用到aspnetpager

    `aspnetpager`是由第三方库WebUI.Pager提供的,它是一个强大的分页组件,适用于ASP.NET Web Forms和ASP.NET MVC项目。 首先,我们需要了解MVC(Model-View-Controller)架构模式。MVC模式是ASP.NET MVC的核心,它将...

    mvc3 分页控件

    在MVC3中,可以结合jQuery或其他JavaScript库来实现无刷新分页。 **4. MvcPager控件** MvcPager是一款专门为ASP.NET MVC设计的轻量级分页控件,它提供了强大的分页功能,支持多种分页样式和无刷新分页。MvcPager-...

    struts2+pager-taglib 实现分页小例子

    而Pager-taglib是Struts2的一个扩展,它提供了一种便捷的方式来实现页面的分页功能,这对于处理大量数据的展示至关重要。 在分页应用中,Pager-taglib允许开发者在页面上显示数据的一部分,而不是一次性加载所有...

    详解MVC如何使用开源分页插件(shenniu.pager.js)

    总结来说,shenniu.pager.js是一个适用于MVC项目的实用分页插件,它简化了前端分页的实现,同时提供了丰富的配置选项,以适应不同的需求。结合后台的API设计,可以构建出高效、友好的分页系统。

    mvc分页,MVCPAGER,asp.net

    总之,ASP.NET MVC中的分页可以通过多种方式实现,如MVCPAGER控件或利用jQuery库如jqGrid。选择哪种方法取决于项目需求和个人偏好。无论选择哪种方式,理解MVC模式以及如何在模型、控制器和视图之间传递数据是至关...

    ASP.NET MVC分页问题解决

    总的来说,解决ASP.NET MVC分页问题,尤其是使用Ajax.Pager,需要理解如何引入和注册资源,以及如何在视图中配置和使用控件。虽然Ajax.Pager不直接提供记录总数和总页数的显示,但通过适当的代码扩展,可以实现这一...

    MVC分页示例

    在本文中,我们将深入探讨如何在ASP.NET MVC3框架中实现分页功能,特别是使用MVCPager分页控件。MVC(Model-View-Controller)模式是开发Web应用程序的一种流行设计模式,它有助于实现清晰的代码组织和解耦。在处理...

    关于Struts2与Jquery实现无刷新分页的不解问题

    Struts2是一个强大的MVC框架,它简化了基于Java的企业级应用程序开发,而jQuery则是一个高效、简洁的JavaScript库,极大地提升了网页开发的效率和用户体验。在本文中,我们将探讨如何在Struts2框架下利用jQuery实现...

    MVC2 MvcPager分页源码

    该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过不断完善和改进后推出的比较成熟而且功能强大的ASP.NET MVC分页解决方案。 MvcPager主要功能有: 1.实现最基本...

    MvcPager15Demo3分页

    MvcPager是由Wenzhao Wang开发的一个轻量级的ASP.NET MVC分页控件,它可以方便地与Entity Framework、NHibernate等ORM框架集成,支持多种数据库系统。在这个“MvcPager15Demo3分页”项目中,我们将看到如何使用...

    MVC3 使用mvcpager数据分页

    MvcPager是由MvcContrib项目提供的一款高效、轻量级的ASP.NET MVC分页控件,它支持多种分页样式,如Bootstrap样式、jQuery UI样式等,而且能够与各种数据访问层(如Entity Framework、NHibernate等)无缝集成,实现...

    jquery分页

    2. **jQuery UI Pager**: 如果你已经在项目中使用了jQuery UI,那么可以利用其内置的Pager组件。这个组件提供了丰富的样式和可定制的事件处理。 3. **bootstrap-paginator**: 这是一个与Bootstrap框架兼容的分页...

Global site tag (gtag.js) - Google Analytics