js 实现分页

本文详细介绍了如何在网页中实现分页与跳转功能,包括前端交互设计、参数传递、页面导航等关键步骤,确保用户能够方便地浏览大量数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="com.paipai.boss.market.constant.BooleanValue"%>
<%@ include file="../common.jsp"%>
<input type="hidden" name="fromPageNum" value="0">
<input type="hidden" name="rowCount" value="15">
<input type="hidden" name="isFromPagination" value="<%=BooleanValue.FALSE%>">

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td height="22" width="20%" background="images/boss_content_12.gif" align="left" class="txgy14">&nbsp;&nbsp;&nbsp;&nbsp;查询结果</td>
<td width="70%" background="images/boss_content_12.gif" align="right">
    <a id="aFirst" onClick="first(this)" style="cursor:hand">
    <font color="#0000CC">首页</font></a>&nbsp;|&nbsp;
 <a id="aPrevious" onClick="previous(this)" style="cursor:hand">
 <font color="#0000CC">上一页</font></a>&nbsp;|&nbsp;
 <a id="aNext" onClick="next(this)" style="cursor:hand"> 
 <font color="#0000CC">下一页</font></a>&nbsp;|&nbsp;
 <a id="aLast" onClick="last(this)" style="cursor:hand">
 <font color="#0000CC">尾页</font></a>&nbsp;|&nbsp;
 第<label id="lbCurPage"></label>/<label id="lbPageNum"></label>页&nbsp;|&nbsp;
 共<label id="lbRowNum"></label>条&nbsp;|&nbsp;
 每页 <input type="text" style="height:18" size="3" maxlength="3" name="rowNumPerPage" id="rowNumPerPage" value="15" onKeyDown="beforeDoRow()" > 条
    <input type="button" class="button" style="height:18"  value="go" onclick="doRow()"/> &nbsp;|&nbsp;
  转到第
<input type="text" style="height:18" size="3"  id="pageNO" onKeyDown="beforeDoRow1()">页<input type="button" class="button" style="height:18" value="go" onclick="doJump()">
</td>
<td background="images/boss_content_12.gif" width="10%">&nbsp;</td>  
</tr>
</table>
<script language="javascript">
    var displayRowNum = 15;
 var curPage = 1;
 var fromPageNum = 0;
 var rowCount = 1;
 var lastPage = 1;
 var rowNum = 0;
 var fromPagination = false;
 var firstTime = 0;
 
 function initPagination()
 {   
    //首次不要检验
    if(firstTime > 0)
    {
   var rowAmount = Trim(frmMain.rowNumPerPage.value);
   if(rowAmount==null || rowAmount.length==0)
   {
    alert("请输入数字");
    frmMain.rowNumPerPage.focus();
    return false;
   }
   if(isRowAmount(rowAmount)==false)
   {
    alert("输入的条数不合法,请重新输入");
    frmMain.rowNumPerPage.focus();
    return false;
   }
   if(parseInt(frmMain.rowNumPerPage.value) <= 0)
   {
    alert("数字必须大于零");
    frmMain.rowNumPerPage.focus();
    return false;
   }
   displayRowNum = frmMain.rowNumPerPage.value;
  }
  showSending();
  curPage = 1;
  fromPageNum = 0;   
  firstTime++;
  rowCount = displayRowNum; 
  frmMain.fromPageNum.value = fromPageNum;
  frmMain.rowCount.value = rowCount;  
  frmMain.rowNumPerPage.value = displayRowNum;  
  return true;
 } 
 
 function first(object)
 { 
     if(!object.disabled)
  {
   if(curPage == 1)
   {
       alert("已经是第一页");
    return;
   }
   curPage = 1;
   setPagination();
   pagination();  
        }
 }
 function previous(object)
 {
     if(!object.disabled)
  {
   if(curPage == 1)
   {
    alert("已经是第一页");
    return;
   }  
   curPage--;
   setPagination();
   pagination();
  }
 }
 function next(object)
 {
     if(!object.disabled)
  {
   if(curPage == lastPage)
   {
    alert("已经是最后一页");
    return;
   }
   curPage++;
   setPagination();
   pagination();
        }
        //curPage++;
 }
 function last(object)
 {
     if(!object.disabled)
  {
   if(curPage == lastPage)
   {
       alert("已经是最后一页");
    return;
   }
   curPage = lastPage;
   setPagination();
   pagination();
  }
 }
 
 function setPagination()
 {
     if(curPage >1)
  {
   aPrevious.disabled = false;
   aFirst.disabled = false;
  }
  else
  {
   aPrevious.disabled = true;
   aFirst.disabled = true;
  }
  
  if(curPage<lastPage)
  {
      aNext.disabled = false;
      aLast.disabled = false;
  }
  else
  {
      aNext.disabled = true;
      aLast.disabled = true;
  }
  document.all.lbCurPage.innerHTML=curPage;
  document.all.lbPageNum.innerHTML=lastPage;
  document.all.lbRowNum.innerHTML=rowNum;    
  
 }
 function beforeDoRow()
 {
  var keycode = event.keyCode; 
  if (keycode == 13)
  {
      doRow();
  }
 }
 function beforeDoRow1()
 {
  var keycode = event.keyCode; 
  if (keycode == 13)
  {
      doJump();
  }
 }
 function doRow()
 {
     //fromPagination = true;为了屏蔽frmMain的submit按钮
     if(isEmpty())
  {
           fromPagination = true;
    event.cancelBubble = true;   
             event.returnValue=false;
       return; 
   }
      var rowAmount = Trim(frmMain.rowNumPerPage.value);
  if(rowAmount==null || rowAmount.length==0)
  {
   alert("请输入数字");
   fromPagination = true;
   frmMain.rowNumPerPage.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
  if(isRowAmount(rowAmount)==false)
  {
   alert("输入的条数不合法,请重新输入");
   fromPagination = true;
   frmMain.rowNumPerPage.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
  if(parseInt(frmMain.rowNumPerPage.value) <= 0)
  {
   alert("数字必须大于零");
   fromPagination = true;
   frmMain.rowNumPerPage.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
  if(parseInt(frmMain.rowNumPerPage.value)>50)
  {
   alert("每页最多可以显示50条");
   fromPagination = true;
   frmMain.rowNumPerPage.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
     displayRowNum = frmMain.rowNumPerPage.value; 
  updatePageNum(); 
  setPagination();
  pagination();
 }
 function doJump()
 {
  frmMain.pageNO.value = Trim(frmMain.pageNO.value); 
  var rowAmount = frmMain.pageNO.value;
  if(rowAmount == "" || rowAmount == "0")
  {
   alert("没有输入页数,请输入");
   frmMain.pageNO.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
  if(isRowAmount(rowAmount)==false)
  {
   alert("输入的页数不合法,请重新输入");
   frmMain.pageNO.focus();
   event.cancelBubble = true;   
            event.returnValue=false;
   return;
  }
        //把焦点转移,这样用户就不会因为滚动鼠标中键而再分页
  frmMain.rowNumPerPage.focus();
     curPage = frmMain.pageNO.value;
  setPagination();
  pagination();
 }
 function pagination()
 {
     fromPageNum = (curPage-1)*displayRowNum;  
  if((fromPageNum+1) > rowNum)
  {
   alert("输入数字过大,当前页没有可显示的记录!");
   fromPagination = true;
   frmMain.rowNumPerPage.focus();
   return;
  }  
     showSending();
  rowCount = displayRowNum; 
  frmMain.fromPageNum.value = fromPageNum;
  frmMain.rowCount.value = rowCount;
  frmMain.isFromPagination.value = "<%=BooleanValue.TRUE%>";
  frmMain.submit();
 } 
 
 function updatePaginationInfo(newRowNum)
 {
     frmMain.isFromPagination.value = "<%=BooleanValue.FALSE%>";
  rowNum = newRowNum;//"<s:property value="rowCount"/>";
  curPage = 1;
     lastPage = Math.ceil(rowNum/displayRowNum);   
  if(lastPage*displayRowNum < rowNum)
  {
   lastPage++; 
  }  
  updatePageNum();
  setPagination();
 }
 
 function updatePageNum()
 {
     lastPage = Math.ceil(rowNum/displayRowNum);
  if(lastPage*displayRowNum < rowNum)
  {
   lastPage++; 
  }  
  //更新条数
  document.all.lbPageNum.innerHTML=lastPage;  
 }
 /**
* 校验输入的条数是否合法
*
*/
function isRowAmount( d_int)
{
 var checkOK = "0123456789";
 var checkStr = d_int;
 var allValid = true;
 var decPoints = 0;
 var ch;
 for (var i = 0;  i < checkStr.length;  i++)
 {
  ch = checkStr.charAt(i);
  for (var j = 0;  j < checkOK.length;  j++)
  {
   if (ch == checkOK.charAt(j))
   {
    break;
   }
  }
  if (j == checkOK.length)
  {
   allValid = false;
   break;
  }
 }
 return (allValid);
}
function isEmpty()
{
 if (rowNum == 0)
 {
  alert("没有记录");
  return true;
 }
 return false;
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值