在之前的工作中我用的分页有很多,一直不牢固,所以自己用起来也不是很顺手,这是一个局部刷新的分页,我试了很多,本想用mvcPager来做局部刷新,但是考虑到成本太高,放弃了,先来总结一下基于bootstrap的分页吧,便于自己以后使用
开源地址 https://github.com/lyonlai/bootstrap-paginator
首先引用
Jquery
bootstrap.min.js
bootstrap-paginator.min.js
控制器代码
[AuthorizationCodeAttribute] [Description("评论信息")] [HttpPost] public ActionResult Comment(int id, int? page) { #region 评论列表 var dal = new CarCommentOperator(); int pageIndex = page ?? 1;//当前页 if (!string.IsNullOrEmpty(Request.QueryString["pageindex"])) { if (!int.TryParse(Request.QueryString["pageindex"], out pageIndex)) { pageIndex = 1; } } const int pageSize = 2; long totalCount; long totalPageCount; IEnumerable<CarComment> list = dal.GetList(pageIndex, pageSize, out totalPageCount, out totalCount, "CarId=" + id); var commentIPagedList = new StaticPagedList<CarComment>(list, pageIndex, pageSize, Convert.ToInt32(totalCount)); #endregion //转成Json格式 var strResult = "{\"pageCount\":" + commentIPagedList.PageCount + ",\"CurrentPage\":" + commentIPagedList.PageNumber + ",\"list\":" + JsonConvert.SerializeObject(list) + "}"; return Json(strResult, JsonRequestBehavior.AllowGet); }
js代码
<script type="text/javascript"> $(document).ready(function() { var carId = 1; $.ajax({ url: "/car/Comment", datatype:'json', type: "Post", data: "id=" + carId, success: function(data) { if (data!=null) { $.each(eval("(" + data + ")").list, function(index, item) { //遍历返回的json $("#list").append('<table>'); $("#list").append('<tr>'); $("#list").append('<td>评论者</td>'); $("#list").append('<td>'+item.UserProfileId+'</td>'); $("#list").append('</tr>'); $("#list").append('<tr>'); $("#list").append('<td>内容</td>'); $("#list").append('<td>'+item.Content+'</td>'); $("#list").append('</tr>'); $("#list").append('</table>'); }); //添加select option $("#commentList").append('<div><ul></ul></div>'); var element = $("#page"); var pageCount = eval("(" + data + ")").pageCount; //取返回的Json数据中的pageCount(把返回数据转成object类型) var currentPage = eval("(" + data + ")").CurrentPage; //去返回的Json数据中的CurrentPage var options = { bootstrapMajorVersion: 3, //版本 currentPage: currentPage, //当前页数 numberOfPages: 5, //设置显示的页码数 totalPages:pageCount, //总页数 itemTexts: function(type, page, current) { switch (type) { case "first": return "首页"; case "prev": return "上一页"; case "next": return "下一页"; case "last": return "末页"; case "page": return page; } //} //pageUrl: function(type, page, current) { // return "/car/Details?page=" + page; },//点击事件 onPageClicked: function(event, originalEvent, type, page) { $.ajax({ url: "/car/Comment?id="+carId, type: "Post", data:"page="+ page, success: function(data1) { if (data1!=null) { $("#list").html(""); $.each(eval("(" + data1 + ")").list, function (index, item) { //遍历返回的json $("#list").append('<table>'); $("#list").append('<tr>'); $("#list").append('<td>评论者</td>'); $("#list").append('<td>'+item.UserProfileId+'</td>'); $("#list").append('</tr>'); $("#list").append('<tr>'); $("#list").append('<td>内容</td>'); $("#list").append('<td>'+item.Content+'</td>'); $("#list").append('</tr>'); $("#list").append('</table>'); }); } } }); } }; element.bootstrapPaginator(options); } } }); });
以上所述是小编给大家介绍的基于BootStrap实现局部刷新分页,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: