程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> WEB項目總結-完全分頁組件

WEB項目總結-完全分頁組件

編輯:關於JAVA

http://www.yeeoh.cn/newpk

終於完成了這個項目:框架設計,頁面設計,後台設計,交互設計,後台代碼,前台頁面代碼,前台交互代碼,數據庫設計,數據錄入,壓力測試,容錯測試,交互測試,修改,補丁,完全由一個人做完,中間還要到處跑生意.我想應該做的不錯了.

整個項目前後台大量使用了AJAX技術,不過看了看,和我的首頁比,有點小兒科,不過畢竟是商業產品網站,做的過於花哨,反到起不好的作用.想想當年在公司,一個WEB項目,前前後後,大批人加入,所有細節都分工到位,居然還搞了三個月,最後還成了豆腐渣工程,心寒啊.

有興趣的朋友可以談談這個項目的價值幾何.

因為之前有些人總是認為我只會忽悠AJAX,呵呵,我能拿出來的東西好像不止AJAX一種吧...

還有個人居然說,給某個人一個月時間學會AJAX,就留住他,更有某些人,看看那個招聘信息,我無語了.真把我當程序員看,哈哈.

這個項目雖然沒有與其他架構聯合,但是整個控制流程我本人感覺已經趨於某種完美了,畢竟我相信用過這套系統的人,不會有人說太多不人性化的話,我能想到的人性化基本全部寫進去,然後個人又把流程每個細節都過了至少三次,哎,我想這是我人生中最後一次操技術活了,將來這些東西,估計能丟的全要丟了.因為這個東西讓我很傷心,我自認為個人做事總是趨於完美主義,可是那些不懂技術的管理人員卻暴殄天物,居然和他說個不字,就嚴厲打擊報復,殊不知,三十年河東,三十年河西,既然你認為技術活是低賤的,而你又認為你的管理很出眾,那麼好,我奉陪,在技術上我敢說完全超過某些人,這樣,我放下技術,重頭來,就算是做管理我也不輸於任何人.

我記得事件的開端就是我說的兩個字:垃圾.罵的好,今後我還是把他當垃圾.

不過我再次也要強調一下,並不是我個人偏激,往往一件事情要解決,做錯的一方道個歉,其實也就沒什麼了,不過在我沒有收到那個道歉之前,那麼這件事情不會就此平息.

而事件開端的開端,我可以完全保證,絕對是為公事,並且絕對是為公司利益著想.

下面給出這個項目中我認為最滿意的控件,加強的分頁控件.

程序代碼

//分頁控制
//參數分別為:RS對象,每頁顯示條數,頁碼指向的鏈接,當前頁碼
function Pages(rsObj,pagesize,url,num){
   var pageContent
   rsObj.PageSize = pagesize
//如果當前沒有頁碼,默認指向第一頁
   if(!$r(num) || $r(num) == "" || $r(num).Count ==0 || $r(num)<1){
     num = 1;
     rsObj.AbsolutePage = 1;
//否則指向該頁碼
   }else{
     num = Number($r(num)+"");
     rsObj.AbsolutePage = num
   }
//計算總頁數:為什麼不用RS.PageCount,因為之後要自動調整每頁顯示條數
//否則頁碼總數計算會出錯
   var pageCount = Math.ceil(rsObj.RecordCount/pagesize)
   pageContent = pageNum(rsObj,pageCount,url,num)
   return "共 "+pageCount+"頁 / "+rsObj.RecordCount+" 條記錄 "+pageContent
}
//開始計算頁碼
function pageNum(rsObj,pgCont,url,num){
   var CS,CSL,CSR,z,cont,thisContent="",maxPageNum=10
//當限制每次顯示的頁碼條數時,計算共有多少組頁碼
   CS = Math.ceil(pgCont/maxPageNum)
//計算當前組頁碼的最大頁數
   CSR = Math.ceil(num/maxPageNum)
//計算當前組頁碼的最小頁數
   CSL = (CSR-1)*maxPageNum
//當前頁碼為最後一組
   if(CS == CSR){
//因為最後一組頁碼不可能於所剩記錄條數相等,所以要做一下容錯
     if(pgCont%maxPageNum == 0){
       cont = CSL+maxPageNum
     }else{
       cont = CSL+(pgCont%maxPageNum)
     }
   }else{
     cont = CSR*maxPageNum
   }
//當前頁面為最後一頁,並且記錄數不等於默認顯示記錄數時,重新寫入記錄數
   if(num == pgCont && rsObj.RecordCount%rsObj.PageSize != 0){
     rsObj.PageSize = rsObj.RecordCount%rsObj.PageSize
   }
   CSL += 1
//設置首頁,上一頁
   if(num > 1){
     thisContent += pgUrl(url,1,"首頁")+pgUrl(url,(num-1),"上一頁")
   }else{
     thisContent += "<span>首頁</span><span>上一頁</span>"
   }
//前後頁組
//如果當前頁碼不為第一組則顯示跳到上組頁碼鏈接
   if(CSR > 1){
     thisContent += pgUrl(url,(CSL-maxPageNum),"[...]")
   }//else{
   //  thisContent += "<span>[...]</span>"
   //}
//循環打出本組頁碼
   for(z=CSL; z<=cont; z++){
     thisContent += checkTO(z,num,url)
   }
//如果當前頁碼不為第一組,並且還有下組頁碼則顯示跳到下組頁碼鏈接
   if(CSR < CS){
     thisContent += pgUrl(url,(cont+1),"[...]")
   }//else{
   //  thisContent += "<span>[...]</span>"
   //}
   if(num != pgCont){
     thisContent += pgUrl(url,(num+1),"下一頁")+pgUrl(url,pgCont,"尾頁")
   }else{
     thisContent += "<span>下一頁</span><span>尾頁</span>"
   }
   return thisContent
}
//判斷是否在本頁或本組
function checkTO(pageSort,num,url){
   if(pageSort == num){
     return "<span class='default'>["+pageSort+"]</span>"
   }else{
     return pgUrl(url,pageSort,"["+pageSort+"]")
   }
}
//不在本頁或本組給出鏈接
function pgUrl(url,num,txt){
   return '<a href="'+url+'page='+num+'">'+txt+'</a>'
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved