主要js:
function CreatePager(itemCount, pageCount, pageIndex, pageSize) {
var size = 10; //默认每页显示10行
if (pageSize != null && pageSize != undefined && pageSize != "") {
size = parseInt(pageSize);
}
var prePage = parseInt(pageIndex) - 1;
if (prePage <= 0) {
prePage = 1;
}
var nextPage = parseInt(pageIndex) + 1;
if (nextPage > parseInt(pageCount)) {
nextPage = pageCount;
}
var firsturl = "javascript:";
var preurl = "javascript:";
var nexturl = "javascript:";
var lasturl = "javascript:";
if (pageIndex == 1) {
firsturl += "void(0);";
preurl += "void(0);";
nexturl += "ajaxPageChange(" + nextPage + ", " + size + ");";
lasturl += "ajaxPageChange(" + pageCount + ", " + size + ");";
}
else if (pageIndex == pageCount) {
firsturl += "ajaxPageChange(1, " + size + ");";
preurl += "ajaxPageChange(" + prePage + ", " + size + ");";
nexturl += "void(0);";
lasturl += "void(0);";
}
else {
firsturl += "ajaxPageChange(1, " + size + ");";
preurl += "ajaxPageChange(" + prePage + ");";
nexturl += "ajaxPageChange(" + nextPage + ");";
lasturl += "ajaxPageChange(" + pageCount + ");";
}
if (pageCount <= 1) {
firsturl = "javascript:void(0)";
preurl = "javascript:void(0)";
nexturl = "javascript:void(0)";
lasturl = "javascript:void(0)";
}
var pageTr = "<div class='p3'>共<span style='color:red'>" + itemCount + "</span>条数据 每页显示行数 <input type=\"text\" id=\"tbCurrentPageSize\" style='width:30px;' onkeyup=\"value=value.replace(/[^\\d]/g,'')\" maxlength=\"3\" value=\"" + size + "\"/> 第<span id='_pageIndex'>" + pageIndex + "</span>页/" + "共<span id=\"pageCount\">" + pageCount
+ "</span>页 <a href=\"" + firsturl
+ "\"" + (pageIndex == 1 ? " style='cursor:not-allowed;' " : "") + ">首页</a> <a href=\"" + preurl
+ "\"" + (pageIndex == 1 ? " style='cursor:not-allowed;' " : "") + ">上一页</a> <a href=\"" + nexturl
+ "\"" + (pageIndex == pageCount ? " style='cursor:not-allowed;' " : "") + ">下一页</a> <a href=\"" + lasturl
+ "\"" + (pageIndex == pageCount ? " style='cursor:not-allowed;' " : "") + ">尾页</a> 转到 <input type=\"text\" id=\"tbCurrentPageIndex\" style='width:20px;' onkeyup=\"value=value.replace(/[^\\d]/g,'')\" maxlength=\"4\" value=\"" + pageIndex + "\"/> 页<input type=\"button\" id=\"btnGO\" value=\"GO\" onclick='BtnGoPage();'/>" + "</div>";
return pageTr;
}
function BtnGoPage() {
var pageIndex = 1;
if ($("#tbCurrentPageIndex").val() != "") {
pageIndex = $("#tbCurrentPageIndex").val();
}
if (pageIndex > parseInt($("#pageCount").html())) {
pageIndex = $("#pageCount").html();
}
if (pageIndex <= 0) {
pageIndex = 1;
}
var size = 10; //默认每页显示10行
if ($("#tbCurrentPageSize").val() != "") {
if (parseInt($("#tbCurrentPageSize").val()) > 500) {
alert("每页显示的行数不能超过500条");
return;
}
size = $("#tbCurrentPageSize").val();
}
ajaxPageChange(pageIndex, size);
}
html:
<div id="pageTb" class="pageTb" style="text-align: center; margin-top: 10px"></div>
<div id="pageTb" class="pageTb" style="text-align: center; margin-top: 10px"></div>
<table border="1" id="table1" style="text-align:center;width:100%;">
<thead style="background-color: cornflowerblue; color:white;">
<tr>
<td>品牌</td>
<td>品线</td>
<td>品类</td>
<td>仓库</td>
<td>品名</td>
<td>编码</td>
<td>总数量</td>
<td>总金额</td>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
<div id="pageTb" class="pageTb" style="text-align: center; margin-top: 10px"></div>
调用此js:
<script>
//创建分页
function PagerMaker(total, allPage, pageIndex, size) {
$(".pageTb").empty();
$(".pageTb").append(CreatePager(total, allPage, pageIndex, size));
}
//分页事件
function ajaxPageChange(currentPageIndex, pageSize) {
ReportPage(currentPageIndex);
}
//分页数据
function ReportPage(pageIndex) {
var index = pageIndex;//页码
var size = 500;//每页条数
var startDate = $("#startDate").val();
$("#tbody").empty();
$.ajax({
type: "GET",
data: {
"startDate": startDate,
"pageIndex": index,
"pageSize": size,
},
url: "/Controller/Action",
dataType: "json",
success: function (request) {
//拼表格
$.each(request.data, function (i, field) {
var html = "";
html += "<tr>";
html += "<td>" + field.品牌 + "</td>";
html += "<td>" + field.品线 + "</td>";
html += "<td>" + field.品类 + "</td>";
html += "<td>" + field.仓库 + "</td>";
html += "<td>" + field.品名 + "</td>";
html += "<td>" + field.编码 + "</td>";
html += "<td>" + field.总数量 + "</td>";
html += "<td>" + field.总金额 + "</td>";
html += "</tr>";
$("#tbody").append(html);
});
PagerMaker(request.total, request.allPage, pageIndex, size);//创建分页
},
});
</script>
MVC:
//分页查询
public ActionResult Action(string startDate,int pageIndex,int pageSize)
{
string json = "[]";
if (!string.IsNullOrEmpty(startDate))
{
int total = 0;//总记录数
int allPage = 0;//总页数
DataTable dt = bll.GetPage(startDate, pageIndex, pageSize, out total, out allPage);
json = JsonConvert.SerializeObject(new { total = total, allPage = allPage, data = dt, });
}
return Content(json);
}
public int GetAllPage(int total, int pageSize)
{
int allPage = 0;//共几页
allPage = total / pageSize;//共几页 = 总行数 / 每页行数
allPage += total % pageSize == 0 ? 0 : 1;//不足一页也算一页
return allPage;
}
样式: