在之前的工作中我用的分页有很多,一直不牢固,所以自己用起来也不是很顺手,这是一个局部刷新的分页,我试了很多,本想用mvcPager来做局部刷新,但是考虑到成本太高,放弃了,先来总结一下基于bootstrap的分页吧,便于自己以后使用
首先引用
Jquery
bootstrap.min.js
bootstrap-paginator.min.js
控制器代码
评论信息")]
[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 list = dal.GetList(pageIndex,pageSize,out totalPageCount,out totalCount,"CarId=" + id);
var commentIPagedList = new StaticPagedList(list,pageIndex,Convert.ToInt32(totalCount));
#endregion
//转成Json格式
var strResult = "{\"pageCount\":" + commentIPagedList.PageCount + ",\"CurrentPage\":" + commentIPagedList.PageNumber + ",\"list\":" + JsonConvert.SerializeObject(list) + "}";
return Json(strResult,JsonRequestBehavior.AllowGet);
}
js代码
评论者内容添加select option
$("#commentList").append('');
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,current) {
// return "/car/Details?page=" + page;
},//点击事件
onPageClicked: function(event,originalEvent,type,page) {
$.ajax({
url: "/car/Comment?id="+carId,data:"page="+ page,success: function(data1) {
if (data1!=null) {
$("#list").html("");
$.each(eval("(" + data1 + ")").list,function (index,item) { //遍历返回的json
$("#list").append('评论者内容