JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 [心得分享] 分頁 [精華]
piggy

piggy



發文: 333
積分: 2
於 2003-09-13 17:50 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
閒來無事,分享一下我的寫法吧
我不管後端你如何去取得資料的,你要從資料庫去捉、檔案中讀進來或是其它的方式
反正最後DAO給我的資料都存放在List物件中
List有個很好用的方法,就是取出中間某段的subList
要使用這個方法,你必需知道起始和結束的資料index
例如List 中有10筆資料(index 0到9)
你想要中間的第三(index 2)到五(index 4)筆資料, 呼叫的方法會像 subList(2, 5)
說到這裡應該有點楖念了吧
以下的code並沒有對performace做最佳化,不過為了偷懶、方便起見,大家了解後自己再去調校吧

假設我每頁要顯示十筆資料,現在要顯示第三頁

int PAGE_SIZE = 10;
int currentPage = 3;
List datas = xxxDAO.getXXXX(); //從DAO中取得資料

//算出要取出資料的index起點和終點
int begin = (currentPage - 1) * PAGE_SIZE;
int end = begin + PAGE_SIZE;
if (end >= data.size()) end = data.size();
List result = data.subList(begin, end);

//算出總頁數
int totalPages = (int)Math.ceil((double)datas.size() / PAGE_SIZE);


就這樣,應該很容易看的懂吧
上面的程式我並沒有做完整的bound check
如果你確定使用者一定不會選超過頁數的上下限,那已經夠用了

有了totalePages, 你就可以在你的UI上列出可以選擇的頁數
讓使用者自行點選

希望這樣簡單的程式對大家有點小幫助
不過可別照抄啊,照抄一定跑不起來的,哈哈哈....
該改的地方還是得依你程式運作的方式改的


reply to postreply to post
An Apple a day, keeps M$ away
話題樹型展開
人氣 標題 作者 字數 發文時間
5200 [精華] [心得分享] 分頁 piggy 861 2003-09-13 17:50
» JWorld@TW »  Servlet/JSP 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8