<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>分页:页码显示javascript</title>
<script>
var ie=(document.getElementById && document.all);
function clearChilds( parentObj){
if ( parentObj.hasChildNodes() ) {
var childs = parentObj.childNodes;
for(var i=childs.length-1;i>=0;i--){
if ( childs[i].hasChildNodes() ) {
clearChilds(childs[i]);
}else {
if ( childs[i].tagName == "INPUT" || childs[i].tagName == "input" ){
if ( childs[i].id == "gotoTxt"){
parentObj.removeChild(childs[i]);
}
}else {
parentObj.removeChild(childs[i]);
}
}//else end
}//for end
}
}
function navigateClick(pageNumber){
document.getElementById("currentPage").value = pageNumber;
submitSearch();
}
var newNavigateClick=function(pageNumber){
return function(){
navigateClick(pageNumber);
}
}
function createNavigateImg(imgName,parentObj,currentNumber) {
var img = document.createElement("img");
img.setAttribute("border","0");
img.setAttribute("src","<%=request.getContextPath() %>/images/sfdcdefectgui/"+imgName);
img.style.verticalAlign = "text-bottom";
img.style.cursor = "pointer";
if(ie){
img.attachEvent("onclick",newNavigateClick(currentNumber) );
}else {
img.addEventListener("click",newNavigateClick(currentNumber),false);
}
parentObj.appendChild(img);
}
function setNavigative(totalNumber,currentNumber) {
// var allData = eval('(' + strData + ')');
// var totalNumber = allData.pageControl.totalPage;
// var currentNumber = allData.pageControl.currentPage;
var navDiv = document.getElementById("navigateDiv");
clearChilds(navDiv);
var spaceNode = document.createTextNode(" ");
navDiv.appendChild(spaceNode);
var totalPage = document.createTextNode(totalNumber);
navDiv.appendChild(totalPage);
var redFont = document.createElement("font");
redFont.setAttribute("color","red");
var currentTxtNum = document.createTextNode(" "+currentNumber);
redFont.appendChild(currentTxtNum);
navDiv.appendChild(redFont);
var currentTototalPage = document.createTextNode("/"+totalNumber);
navDiv.appendChild(currentTototalPage);
spaceNode = document.createTextNode(" ");
navDiv.appendChild(spaceNode);
if ( currentNumber > 1) {
spaceNode = document.createTextNode(" ");
navDiv.appendChild( spaceNode );
createNavigateImg("home_page.gif",navDiv,1);
spaceNode = document.createTextNode(" ");
navDiv.appendChild( spaceNode );
createNavigateImg("previous_page.gif",navDiv,currentNumber);
}
//page number display
var endNumber = 0;
var beginNumber = 0;
var dispNumber = 5;
var offSize = Math.floor( dispNumber/2);
if ( currentNumber <=1 ){
beginNumber = 1;
if ( totalNumber <=dispNumber-1 )
endNumber = totalNumber;
else
endNumber = beginNumber + dispNumber-1;
}else if ( currentNumber >= totalNumber){
endNumber = totalNumber;
if ( totalNumber -(dispNumber-1) <= 0)
beginNumber =1;
else
beginNumber = endNumber -(dispNumber-1) ;
} else {
var forwardOffSize = 0;
var backwardOffSize = 0;
if ( (currentNumber + offSize) > totalNumber)
forwardOffSize = currentNumber + offSize - totalNumber;
if ( (currentNumber - offSize) <1)
backwardOffSize = offSize - currentNumber + 1 ;
if ( forwardOffSize == 0 && backwardOffSize == 0) {
beginNumber = currentNumber -offSize;
endNumber = offSize + currentNumber;
} else if ( forwardOffSize != 0 && backwardOffSize == 0){
endNumber = totalNumber;
beginNumber = currentNumber -offSize -forwardOffSize ;
} else if ( forwardOffSize == 0 && backwardOffSize != 0){
beginNumber = 1;
endNumber = currentNumber +offSize +backwardOffSize ;
} else if ( forwardOffSize != 0 && backwardOffSize != 0){
beginNumber = 1;
endNumber = totalNumber;
}
if ( beginNumber <= 0)
beginNumber= 1;
if ( endNumber >= totalNumber)
endNumber = totalNumber;
}
spaceNode = document.createTextNode(" ");
navDiv.appendChild(spaceNode);
for(var i=beginNumber;i<=endNumber;i++) {
spaceNode = document.createTextNode(" ");
navDiv.appendChild(spaceNode);
if ( i != currentNumber ) {
var a = document.createElement("a");
a.style.textDecoration = "none";
a.setAttribute("currentPage",i);
a.setAttribute("href","#");
if(ie){
a.attachEvent("onclick",newNavigateClick(i) );
}else {
a.addEventListener("click",newNavigateClick(i),false);
}
var txt = document.createTextNode(i);
a.appendChild(txt);
navDiv.appendChild( a );
} else {
var font = document.createElement("font");
font.setAttribute("color","red");
var txt = document.createTextNode(i);
font.appendChild(txt);
navDiv.appendChild( font );
}
}
if ( currentNumber < totalNumber) {
spaceNode = document.createTextNode(" ");
navDiv.appendChild( spaceNode );
createNavigateImg("next_page.gif",navDiv,(currentNumber+1));
spaceNode = document.createTextNode(" ");
navDiv.appendChild( spaceNode );
createNavigateImg("end_page.gif",navDiv,totalNumber);
}
spaceNode = document.createTextNode(" ");
navDiv.appendChild(spaceNode);
var gotoInput = document.createElement("input");
gotoInput.setAttribute("type","text");
gotoInput.setAttribute("size","1");
gotoInput.setAttribute("id","gotoTxt");
if(ie){
gotoInput.attachEvent("onkeydown",newCheckValue(event) );
}else {
gotoInput.addEventListener(
"keydown",
function(event){
checkValue(event);
},
false
);
}
navDiv.appendChild( gotoInput );
}
function checkValue(event){
var e = event || window.event;
var gototxt = document.getElementById("gotoTxt");
gototxt.value=gototxt.value.replace(/[^0-9]*$/, "");
var express =/[0-9]/;
if ( gototxt.value != "" && express.test(gototxt.value) ) {
if ( e.keyCode == 13) {
navigateClick(gototxt.value);
}
}
}
var newCheckValue=function(event){
return function(){
checkValue(event);
}
}
</script>
</head>
<body>
<TABLE width="100%" height="30" cellSpacing=0 cellPadding=0 border=0 >
<TR>
<TD align="left">
<div id="navigateDiv" style="FONT-SIZE:14; FONT-FAMILY:Verdana">
<input name=delete type=button class="btnMouseover" value="删除"; onClick="deleteSearchRecord();" />
<input type="hidden" name="hideIdvalue" />
</div>
</TD>
</TR>
</TABLE>
<br/>
<input type="button" οnclick="setNavigative(12,6)" value="display page Number"/>
</body>
</html>