(補充版)簡簡單單的分頁方案:javascript+Struts+Hibernate

來源:互聯網
上載者:User

前幾天有朋友問給定一個數,用它來構造一個2維數組,當時想用它來在頁面管理頁碼倒不錯!按寧增勿改的原則:

1:在原JS代碼中加幾個了全域變數,最終的全域變數列表為:

<script type="text/javascript">...
//<![CDATA[
var globalLink;
var pageArray;
var currentPage;
var totalPage;

 原來的兩個函數不變,再加幾個函數:

function pageStruct(paran,e){
  var one=0;
  var two=0;
  var page=new Array();
  if(param.length==0){
    alert("error");
  }else{
    totalPage=param;
    page[one]=new Array();
    for(var i=0;i<param;i++){
      page[one][two]=i+1;
      two++;
      if(two==5) two=0;
      if((i+1)/5>=1 && (i+1)%5==0){
        one++;
        page[one]=new Array();
      }
    }
  }
  pageArray=page;
  currentPage=e;
  if(currentPage<=0 || currentPage==undefined) currentPage=1;
  pagePanel(findPageArray());
}

該函數的作用:

a,用param參數構造一個2維數組,並把該數組賦給全域變數:pageArray;

b,用e參數給全域變數:currentPage賦值

c,列印頁面面板

看另一個函數:

function findPageArray(){
  var tempParam;
  for(var i=0;i<pageArray.length;i++){
    for(var j=0;j<pageArray[i].length;j++){
      if(pageArray[i][j]==currentPage){
          tempParam=i;
          break;
      }
    }
  }
  return tempParam;
}

該函數的作用:

a.用currentPage來定位2維數組

最後一個函數:

function pagePanel(param){
  if(param.length==0 || param<=0) param=0;
  var tempPrev=currentPage-1;
  if(tempPrev<=0) tempPrev=1;
  var tempNext=currentPage+1;
  if(tempNext>=totalPage) totalNext=totalPage;
  var lastPos=pageArray[param].length-1;
  pageLink="<dl><dt>Results Page:</dt>";
  pageLink=pageLink+"<dd><a href='javascript:window.location.replace(getRequestPageNumber("+pageArray[param][0]+"));'>Index</a></dd>";
  pageLink=pageLink+"<dd><a href='javascript:window.location.replace(getRequestPageNumber("+tempPrev+"));'>Prev</a></dd>";
  for(var i=0;i<pageArray[param].length;i++){
    pageLink=pageLink+"<dd><a href='javascript:window.location.replace(getRequestPageNumber("+pageArray[param][i]+"));'>"+pageArray[param][i]+"</a></dd>";
  }
  pageLink=pageLink+"<dd><a href='javascript:window.location.replace(getRequestPageNumber("+tempNext+"));'>Next</a></dd>";
  pageLink=pageLink+"<dd><a href='javascript:window.location.replace(getRequestPageNumber("+pageArray[param][lastPos]+"));'>Last</a></dd></dl>";
  document.getElementById("pagelist").innerHTML=pageLink;
}

該函數的作用:

a.用findPageArray函數返回的數數組作引元列印頁面面板

最後網頁的改動為:

<div id="pagepanel">
    <label id="pagelist"></label>
   <script type="text/javascript" language="javascript">...pageStruct(<%=p.getTotalPages()%>,<%=p.getCurrentPage() %>)</script>
    <p><%=p.getCurrentPage() %>/<%=p.getTotalPages() %></p>
</div>

其實用單例的模式把JS重構為物件導向的寫法更好!可以避免重複的在頁面構造2維數組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.