手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >jQuery前端分页示例分享
jQuery前端分页示例分享
摘要:大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现。调用pager方法,输入参数,会返回一个导航条的ht...

大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现。

调用pager方法,输入参数,会返回一个导航条的html字符串。方法的内部比较简单。

复制代码 代码如下:

/**

* pageSize, 每页显示数

* pageIndex, 当前页数

* pageCount 总页数

* url 连接地址

* pager(10, 1, 5, 'Index')使用方法示例

*/

function pager(pageSize, pageIndex, pageCount, url) {

var intPage = 7; //数字显示

var intBeginPage = 0;//开始的页数

var intEndPage = 0;//结束的页数

var intCrossPage = parseInt(intPage / 2); //显示的数字

var strPage = "<div><span>第 <font color='#FF0000'>" + pageIndex + "/" + pageCount + "</font> 页 每页 <font color='#FF0000'>" + pageSize + "</font> 条</span>";

if (pageIndex > 1) {

strPage = strPage + "<a href='" + url + "?pageIndex=1&pageSize=" + pageSize + "'><span>首页</span></a> ";

strPage = strPage + "<a href='" + url + "" + (pageIndex - 1) + "&pageSize=" + pageSize + "'><span>上一页</span></a> ";

}

if (pageCount > intPage) {//总页数大于在页面显示的页数

if (pageIndex > pageCount - intCrossPage) {//当前页数>总页数-3

intBeginPage = pageCount - intPage + 1;

intEndPage = pageCount;

}

else {

if (pageIndex <= intPage - intCrossPage) {

intBeginPage = 1;

intEndPage = intPage;

}

else {

intBeginPage = pageIndex - intCrossPage;

intEndPage = pageIndex + intCrossPage;

}

}

} else {

intBeginPage = 1;

intEndPage = pageCount;

}

if (pageCount > 0) {

for (var i = intBeginPage; i <= intEndPage; i++) {

{

if (i == pageIndex) {//当前页

strPage = strPage + " <a href='javascript:void(0);'>" + i + "</a> ";

}

else {

strPage = strPage + " <a href='" + url + "" + i + "&pageSize=" + pageSize + "' title='第" + i + "页'>" + i + "</a> ";

}

}

}

}

if (pageIndex < pageCount) {

strPage = strPage + "<a href='" + url + "" + (pageIndex + 1) + "&pageSize=" + pageSize + "'><span>下一页</span></a> ";

strPage = strPage + "<a href='" + url + "" + pageCount + "&pageSize=" + pageSize + "'><span>尾页</span></a> ";

}

return strPage+"</div>";

}

试用这个方法试试

复制代码

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

<script src="Script/ajax-pager.js"></script>

<script src="Script/jquery-1.8.0.js"></script>

<script type="text/javascript">

$(function () {

loadData(1, 10);

//分页条点击事件

$(document.body).on('click', '.pageNav', function () {

var pageSize = Number(getQueryString('pageSize', $(this).attr('href')));

var pageIndex = Number(getQueryString('pageIndex', $(this).attr('href')));

loadData(pageIndex, pageSize);

return false;//不跳转页面

});

});

//加载数据

function loadData(pageIndex, pageSize) {

$.getJSON('Content/CustomersData.txt', { pageIndex: pageIndex, pageSize: pageSize }, function (data) {

var beginIndex = (pageIndex - 1) * pageSize;

var endIndex = pageIndex * pageSize - 1;

var tbodyHtml = '';

for (var i = beginIndex; i < endIndex; i++) {

if (!data.Rows[i]) {

break;

}

var tbody = '<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td>';

tbody += '<td>{6}</td><td>{7}</td><td>{8}</td><td>{9}</td><td>{10}</td></tr>';

tbody = tbody.format(data.Rows[i].CustomerID, data.Rows[i].CompanyName, data.Rows[i].ContactName,

data.Rows[i].ContactTitle, data.Rows[i].Address, data.Rows[i].City,

data.Rows[i].Region ? data.Rows[i].Region : '', data.Rows[i].PostalCode, data.Rows[i].Country,

data.Rows[i].Phone, data.Rows[i].Fax ? data.Rows[i].Fax : '');

tbodyHtml += tbody;

}

$('#tb').find('tbody').first().html(tbodyHtml);

var pageCount = parseInt((data.Total / pageSize)) + (data.Total % pageSize ? 1 : 0);

$('#dvPager').html(pager(pageSize, pageIndex, pageCount, 'CustomersData.txt'));

}

);

}

//字符串格式化

String.prototype.format = function (args) {

var result = this;

var reg;

if (arguments.length > 0) {

if (arguments.length == 1 && typeof (args) == "object") {

for (var key in args) {

if (args[key] !== undefined) {

reg = new RegExp("({" + key + "})", "g");

result = result.replace(reg, args[key]);

}

}

} else {

for (var i = 0; i < arguments.length; i++) {

if (arguments[i] !== undefined) {

reg = new RegExp("({)" + i + "(})", "g");

result = result.replace(reg, arguments[i]);

}

}

}

}

return result;

};

//获取url参数

function getQueryString(name, url) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

url = url && url.indexOf('?') >= 0 ? url.substring(url.indexOf('?'), url.length) : window.location.search;

var r = url.substr(1).match(reg);

if (r != null) return unescape(r[2]); return null;

}

</script>

</head>

<body>

<table id="tb" border="1" cellpadding="0" cellspacing="0">

<thead>

<tr>

<th width="90px;">CustomerID</th>

<th width="240px;">CompanyName</th>

<th width="130px;">ContactName</th>

<th width="140px;">ContactTitle</th>

<th width="205px;">Address</th>

<th width="90px;">City</th>

<th width="50px;">Region</th>

<th width="80px;">PostalCode</th>

<th width="80px;">Country</th>

<th width="95px;">Phone</th>

<th width="95px;">Fax</th>

</tr>

</thead>

<tbody></tbody>

</table>

<div id="dvPager"></div>

</body>

</html>

[/code]

看下效果

jQuery前端分页示例分享1

列有点多,我只截图了部分,界面好丑,加点样式,用bootstrap来美化下

使用Nuget安装bootstrap

jQuery前端分页示例分享2

加上样式后

jQuery前端分页示例分享3

虽说不是特别漂亮,但还是对得起观众吧。

代码下载https://github.com/dengjianjun/JsPager

如果觉得对你有帮助,请点个赞,谢谢!

【jQuery前端分页示例分享】相关文章:

JQuery中clone方法复制节点

jQuery封装的tab选项卡插件分享

javascript实现控制的多级下拉菜单

jQuery基于图层模仿五星星评价功能的方法

jQuery构造函数init参数分析续

Jquery中基本选择器用法实例详解

javaScript中slice函数用法实例分析

JQuery中节点遍历方法实例

JS+CSS实现的拖动分页效果实例

JQuery中Text方法用法实例分析

精品推荐
分类导航