今天写的 Javascript 异步分页组件
分页的效果如下:

使用方法:
1、页面上要引用
<script src="Page.js" type="text/javascript"></script>
2、页面放放上一个 一个放 分页组件的 元素 如:DIV,放一个异步请求回 放入要显示 数据 的元素 如 : DIV
<div id="Result">
-----这是要显示数据的地方
</div>
<div id="pager">
----这里是分页组件要显示的地方
</div>
3、分页的一些初始 设置
//这个是 当用户点 “上一页” “下一页” “首页” “跳转” 时要调用的 函数 注意:要放在 SetPage 的前面,
// 里面的 参数 是当前的页码 必须要有的
PageClick = function (currentPageIndex) {
--- 这里是你要异步请求的数据
--- 请求回来已后 直接放到 要显示的地方 如:上面设置 的 ID 为 Result 的DIV
}
// 这个函数主要是对分页做一些初始化,
//第一个参数是 当前是第几页
//第二个 参数是 总共多少页
//第三个 参数是 分页组件 要显示的元素的ID 如上面设好的 ID 为 pager 的 DIV
// 第四个 参数是 当用户点 “上一页” “下一页” “首页” “跳转” 时要调用的 函数
SetPage(1, PageCount "pager", PageClick);
4、你可以 对分页控件做一些Css 方面的设置
如:
#pager{font-size:24px;}
#pager {color:#000;text-decoration:none;margin-left:20px;}
#pager :hover{color:#f64d04;border-bottom:2px solid #f64d04;}
其它Css 放面 就自已看着设置 就行了
===========================Javscript 源码 (Page.js)===================================
下是我写的这个分页组件的 源码,没做到封装,用到了 全局变量 等 ,如果有对你的业务 有用的话。 可以再次封装一下:
var PageIndex = 1;
var PageCount = 0;
var PageHtml = "";
var CallBack;
function SetPage(Pindex,Pcount,PageID,CallBackFunc)
{
PageHtml += "<div class='page'><a href='javascript:void(0);' onclick='PrePage();' id='Pre' >上一页</a><a href='javascript:void(0);' onclick='NexPage();' id='Nex'>下一页</a>";
PageHtml += " 转至 <select style='margin-top:0px;' id='PageJump' name='' size='1' onchange='PJump();'>";
for (var i = 1; i <= Pcount; i++) {
if (i == Pindex) {
PageHtml += "<option style='height:30px;' value='" + i + "' SELECTED>" + i + "</option>";
} else {
PageHtml += "<option value='"+i+"'>" + i + "</option>";
}
}
PageHtml += "</select> 页<a href='javascript:void(0);' onclick='FirstPage()'>返回首页</a></div>";
PageCount = Pcount;
PageIndex=Pindex;
var PageNode = document.getElementById(PageID);
PageNode.innerHTML=PageHtml;
CallBack = CallBackFunc;
CallBack(PageIndex);
}
//上一页
function PrePage() {
PageIndex--;
if (PageIndex <= 0) {
PageIndex = 1;
return;
}
var jumpNode = document.getElementById("PageJump");
jumpNode.value = PageIndex;
CallBack(PageIndex);
}
// 下一页
function NexPage() {
PageIndex++;
if (PageIndex > PageCount) {
PageIndex = PageCount;
return;
}
var jumpNode = document.getElementById("PageJump");
jumpNode.value = PageIndex;
CallBack(PageIndex);
}
//跳到第几页
function PJump() {
var jumpNode = document.getElementById("PageJump");
PageIndex = parseInt(jumpNode.value);
CallBack(PageIndex);
}
// 第一页
function FirstPage() {
if (PageIndex!=1)
{
PageIndex = 1;
var jumpNode = document.getElementById("PageJump");
jumpNode.value = PageIndex;
CallBack(PageIndex);
}
}
好了就写这么多吧!

浙公网安备 33010602011771号