.net core 分页

最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github.com/sgjsakura/AspNetCore/blob/master/PagerDemo.md

使用方法也很简单

后台代码如下:期中list是数据返回的数据,pagesize是每页的数量,page是当前页数,totalcount-总条数,pagenum-总页数

var model= new PagedList<List<user>,user>(list, list.ToList(), pagesize, page, totalcount, pagenum);

  前台:

<ul class="pagination">
    <pager setting-link-attr-data-ajax="true" setting-link-attr-data-ajax-update="#list" generation-mode="ListOnly" setting-link-attr-data-ajax-searchForm="#SearchForm" />
    <li>当前:@Model.PageIndex 页 总共:@Model.TotalPage 页</li>
</ul>

 

setting-link-attr后面跟的参数都是jquery.unobtrusive-ajax.js的操作参数,
data-ajax-是否是异步ajax分页,
data-ajax-update-需要更新的html标签id,
data-ajax-searchForm-分页时需要传递的查询表单(PS:该属性是发现了分页没有页面已有的查询条件传递过去,修改unobtrusive源码手动添加的,)
$(document).on("click", "a[data-ajax=true]", function (evt) {
        evt.preventDefault();
//  //下面为修改的源码部分,用来处理页面查询表单参数
        var currentform = $(this.getAttribute("data-ajax-searchForm"))//
        var cdata = [];
        if (currentform != undefined) {
            cdata = $(currentform).serializeArray();
        }
//  //end

        asyncRequest(this, {
            url: this.href,
            type: "GET",
            data: cdata
        });
    });