憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks

          在工作中需要一個翻頁效果,所以寫下了如下方法。實現了常用的翻頁效果,但代碼還沒有進行優化(缺點:不適合數據量大的情況,因為所有的記錄存在一個Vector變量中)貼出來供需要著參考一下!
          import java.util.*;

          public class Pages {
           int allRows;//所有的行數
           int currRow;//當前是第幾行
           int onePageRows;//一頁顯示多少行
           int allPages;//所有的頁數
           int currPage= 1;
           boolean firstPage= false;
           boolean lastPage= false;

           public Pages(int onePageRows) {
            this.onePageRows= onePageRows;
           }
          /*
             vector1 為所有的記錄
          */

           public Vector downPage(Vector vector1, int currPage) {
            Vector vector= new Vector();
            this.currPage= currPage;
            this.allRows= vector1.size();
            this.currRow= currPage * (this.onePageRows);
            int j= this.allRows % this.onePageRows;
            this.allPages= (this.allRows / this.onePageRows) + (j == 0 ? 0 : 1);
            this.currPage++;
            if (this.currPage < this.allPages) {
             this.lastPage= true;
            } else {
             this.lastPage= false;
            }
            this.firstPage= true;
            int i= 0;
            for (i= 0; i < this.onePageRows && currPage * this.onePageRows + i < this.allRows; i++) {
             vector.add(i, vector1.get(currRow + i));
            }
            this.currRow= this.currRow + i;
            return vector;
           }

           public Vector upPage(Vector vector1, int currPage) {
            Vector vector= new Vector();
            this.currPage= currPage;
            this.allRows= vector1.size();
            this.currRow= (currPage - 2) * (this.onePageRows);
            int j= this.allRows % this.onePageRows;
            this.allPages= (this.allRows / this.onePageRows) + (j == 0 ? 0 : 1);
            this.currPage--;
            if (this.currPage > 1) {
             this.firstPage= true;
            } else {
             this.firstPage= false;
            }
            this.lastPage= true;
            for (int i= 0; i < this.onePageRows; i++) {
             vector.add(i, vector1.get(this.currRow + i));
            }
            return vector;
           }
           public Vector firstPage(Vector vector1) {
            Vector vector= new Vector();
            this.allRows= vector1.size();
            this.currRow= this.onePageRows;
            int j= this.allRows % this.onePageRows;
            this.allPages= (this.allRows / this.onePageRows) + (j == 0 ? 0 : 1);
            this.firstPage= false;
            if (allPages > 1)
             this.lastPage= true;
            for (int i= 0; i < this.onePageRows && i < vector1.size(); i++) {
             vector.add(i, vector1.get(i));
            }
            return vector;
           }
           public Vector lastPage(Vector vector1) {
            Vector vector= new Vector();
            this.allRows= vector1.size();
            int j= this.allRows % this.onePageRows;
            this.allPages= (this.allRows / this.onePageRows) + (j == 0 ? 0 : 1);
            this.currPage= this.allPages;
            this.lastPage= false;
            if (allPages > 1)
             this.firstPage= true;
            int m= j == 0 ? this.onePageRows : this.allRows - (this.allPages - 1) * this.onePageRows;
            int n= m;
            for (int i= 0; i < m; i++) {
             vector.add(i, vector1.get(this.allRows - n));
             n--;
            }
            return vector;
           }

           public String getToolBar() {
            String form= "<form  id=\"form\" method=\"post\">";
            String table1= "<table align=\"center\" width=\"70%\"><tr><td>";
            String button1= "<input type=\"button\" value=\"首頁\" onClick=\"dealPage();\" id=\"firstPage\" />&nbsp;";
            String disabled= "disabled=";
            if (!this.firstPage)
             disabled= disabled + "disabled";
            else
             disabled= "";
            String button2= "<input type=\"button\" value=\"上頁\" id=\"upPage\" onClick=\"dealPage();\" " + disabled + " />&nbsp;";
            if (!this.lastPage)
             disabled= disabled + "disabled";
            else
             disabled= "";
            String button3= "<input type=\"button\" value=\"下頁\" id=\"downPage\" onClick=\"dealPage();\" " + disabled + " />&nbsp;";
            String button4= "<input type=\"button\" value=\"尾頁\"  id=\"lastPage\" onClick=\"dealPage();\"/>";
            String table2= "</td></tr><tr><td align=\"center\">";
            String table3= "共" + this.allRows + "行/第" + this.currPage + "頁/共" + this.allPages + "頁</td></tr></table></form>";
            String result= form + table1 + button1 + button2 + button3 + button4 + table2 + table3;
            return result;
           }
           
           public String getJavaScript() {
            StringBuffer result= new StringBuffer();
            if (this.getAllRows() > this.getOnePageRows()) {
             result.append("<SCRIPT language=JavaScript>");
             result.append("function dealPage(){");
             result.append("document.all.form.action=\"/mydomain/javaoa/selectqh.do?method=\"+event.srcElement.id+\"&currPage=");
             result.append(this.getCurrPage() + "&onePageRows=" + this.getOnePageRows() + "\";");
             result.append("document.all.form.submit();");
             result.append("}");
             result.append("</SCRIPT>");
            }
            return result.toString();
           }
           // public static void main(String[] args) {
           //  Pages page= new Pages(5);
           //  Vector vector= new Vector();
           //  Vector vector1= new Vector();
           //  for (int i= 0; i < 7; i++) {
           //   vector.add(i, new String(new Integer(i).toString()));
           //  }
           //  vector1= page.upPage(vector, 2);
           //  String s= page.getJavaScript();
           //  System.out.println("==" + s);
           //     for (int i= 0; i < vector1.size(); i++) {
           //      System.out.println(i + "=" + vector1.get(i));
           //     }
           //     System.out.println("allRows=" + page.allRows);
           //     System.out.println("currRow=" + page.currRow);
           //     System.out.println("onePageRows=" + page.onePageRows);
           //     System.out.println("allPages=" + page.allPages);
           //     System.out.println("currPage=" + page.currPage);
           //     System.out.println("firstPage=" + page.firstPage);
           //     System.out.println("lastPage=" + page.lastPage);
           // }
           /**
            * @return
            */
           public int getAllPages() {
            return allPages;
           }

           /**
            * @return
            */
           public int getAllRows() {
            return allRows;
           }

           /**
            * @return
            */
           public int getCurrPage() {
            return currPage;
           }

           /**
            * @return
            */
           public int getCurrRow() {
            return currRow;
           }

           /**
            * @return
            */
           public boolean isFirstPage() {
            return firstPage;
           }

           /**
            * @return
            */
           public boolean isLastPage() {
            return lastPage;
           }

           /**
            * @return
            */
           public int getOnePageRows() {
            return onePageRows;
           }

          }

          posted on 2007-01-23 14:15 二胡 閱讀(513) 評論(4)  編輯  收藏 所屬分類: Java

          評論

          # re: 實現翻頁效果的一個方法 2007-01-31 22:15 FG
          你和健寒真是絕配阿,都這么專業!呵呵呵   回復  更多評論
            

          # re: 實現翻頁效果的一個方法 2007-02-12 11:14 JieJr
          原來分頁這么麻煩,不過你可以每次用的時候簡單一些哈!  回復  更多評論
            

          # re: 實現翻頁效果的一個方法[未登錄] 2007-03-03 17:06 J
          是不是比原來漂亮一些?  回復  更多評論
            

          # re: 實現翻頁效果的一個方法 2007-12-29 12:05 laoflch
          其實將分頁的工作交給數據庫去做的話,效率會更好些。  回復  更多評論
            

          主站蜘蛛池模板: 吐鲁番市| 察雅县| 饶河县| 钟山县| 万安县| 桐城市| 达孜县| 长岭县| 兴国县| 南溪县| 合川市| 东台市| 洪江市| 建水县| 浑源县| 饶阳县| 柳林县| 堆龙德庆县| 调兵山市| 晋城| 安国市| 彝良县| 平武县| 苏州市| 赤峰市| 余庆县| 建德市| 两当县| 夏津县| 青海省| 泸州市| 长治市| 万宁市| 崇文区| 临邑县| 博爱县| 蓬溪县| 新丰县| 嵩明县| 宕昌县| 阿克苏市|