Asp.Net Mvc4+jquery分页备忘

Jquery提供了一个分页JS:jquery.pagination.js  可以通过异步请求服务端在客户端无刷新分页,效果如下:

实现步骤:

1. 新建MVC项目引入资源:

 

        <link href="../../Content/pagination.css" rel="stylesheet" type="text/css" />
        <script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="../../Scripts/jquery.pagination.js" type="text/javascript"></script>

 2. 视图中加入初始化代码:

 

<script type="text/javascript">
    var pageSize = 10; //每页显示多少条信息
    $(function () {
        // 创建分页
        $("#Pagination").pagination(25, {
                num_edge_entries: 1, //边缘页数
                num_display_entries: 10, //主体页数
                callback: paginationCallback, //回调函数
                items_per_page: pageSize, //每页显示多少项
                prev_text: "前一页",
                next_text: "后一页"
            });
     });
   function paginationCallback(page_index, jq) {
       $.post("/home/GetPageList", { "PageIndex": page_index, "pageSize": pageSize }, function (result) {
           var str = "";
           //result=eval("("+result+")");
           $.each(result, function (index,item) {
               str += "<tr><td>" + item.Id + "</td><td>" + item.Name + "</td></tr>";
           });
           $("#List tr:gt(0)").remove();
           $("#List").append(str);
       })
    }
</script>
<table width="1000" border="0" cellspacing="0" id="List">
  <tr class="ListTitle"><td>ID</td><td>名称</td></tr>
</table>
<div id="Pagination" class="quotes"></div>

 3. 控制器中加入测试数据产生Action:

 public ActionResult GetPageList(int pageSize, int pageIndex)
        {
            List<Person> list = new List<Person>();
            for (int i = 0; i < 25; i++)
            {
                Person p = new Person { Id = i + 1, Name = "zhangsan" + i };
                list.Add(p);
            }
            return Json(list.Skip(pageIndex*pageSize).Take(pageSize),JsonRequestBehavior.AllowGet);
        }

 Person类如下:

    public class Person
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 名字
        /// </summary>
        public string Name { get; set; }
    }

然后F5,不出意外的话会告诉你某个函数找不到,那么去_LayOut中找到:

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)

 删掉即可。

或者也可以采用MVC4推荐的压缩方式去引用。

分页标签的样式这里有位仁兄的比较全,有多种风格可选:

http://www.cnblogs.com/knowledgesea/archive/2013/01/03/2841554.html

 

posted @ 2014-10-11 15:47  石曼迪  Views(3966)  Comments(0Edit  收藏  举报
瓴域建设-环保事业中心