使用SQL2000的翻頁寫法,也適用於其他數據庫,例如ORACLE

使用SQL2000的翻頁寫法,當然,大部分代碼都是通用的,你也可以用別的數據庫,僅僅是SQL不同而已,例如ORACLE就是用

select * from
        (select a.*, rownum as row_num from( select * from XXX where xx=xx ) a where rownum < "+endNum+") where row_num > "+beginNum+"

的方法來取得所要的數據LIST的。

下面SQL中其中CurPage是頁碼,PageRecords是每頁記錄數,condition 是傳遞的條件參數

String sql = "select top " + PageRecords + " kczybh," +
    " from work  and kczybh not in (select top "+CurPage*PageRecords+" kczybh from" +
    "  Work "+ condition +" order by kczybh desc ) "+ condition +" order by kczybh desc"; 

調用的JSP代碼中有:

<script  language="javascript">

function choice()
  {
    form1.target="";
    form1.action="";
    form1.submit();
  }

</script>

.................

<%//頁面上的查詢條件輸入框內容

String kczymc = request.getParameter("kczymc");
           kczymc = kczymc == null?"":kczymc;

String condition = " where 1=1";
     if (!(kczymc==null||kczymc.trim().length() == 0)) {
            condition += " and kczymc like '%" + kczymc + "%'";
        }

   //分頁控制初始化
        int CurPage = 0;       //當前頁碼
        int PageRecords = 15;  //每頁的記錄數,根據實際需要設置
        int MaxRecords = 0;    //最大記錄數
        int MaxPages = 0 ;     //最大頁數
        //取得當前頁數
  String StrCurPage = "";
  if(request.getParameter("page")!=null && request.getParameter("page")!="")
   {
    //當前頁
    StrCurPage = request.getParameter("page");
    CurPage = Integer.parseInt(StrCurPage);
    session.setAttribute("UnReportUserCurPage",StrCurPage);        
   }
   else
   {
    StrCurPage = (String)session.getAttribute("UnReportUserCurPage");
    if(StrCurPage==null || StrCurPage.equals(""))
    {
     CurPage = 0; 
     session.setAttribute("UnReportUserCurPage","0");
    }
    else
    {
     CurPage = Integer.parseInt(StrCurPage);
    }
   }
BusyworkController busywork = new BusyworkController();

MaxRecords = busywork.getQueryAmount(condition);//取得符合條件的記錄數量

//計算總頁數
  MaxPages = MaxRecords / PageRecords;
        if(MaxRecords%PageRecords!=0)
        {
            MaxPages ++ ;
        }
     //根據分頁信息讀出相應數據
        ArrayList list = busywork.getUnReportedPage(condition,CurPage,PageRecords);

%>

...................顯示數據列表

 <!--分頁控制開始-->
                 <TABLE cellSpacing=0 cellPadding=2 width="100%" align=center border=0>
                    <input type="hidden" name="page" value="0">
                     <tr align='center' valign='middle' class='table_body_td'>
         <td align='center'>&nbsp;</td>
      <td width='260' align='center'>當前爲第 <span class="RedHighLight"><%=MaxPages==0?0:(CurPage+1)%></span> / <span class="RedHighLight"><%=MaxPages%></span> 頁,共 <span class="RedHighLight"><%=MaxRecords%></span> 條記錄 </td>
      <td width='60' align='center'>
       <input type="submit" class="anniu" name="FirstPage" value="首 頁" <%=CurPage>0?"":"disabled"%> onClick="form1.action='';form1.target='';form1.page.value=0" >
      </td>
      <td width='60' align='center'>
       <input type="submit"  class="anniu" name="FrontPage" value="上 頁" <%=CurPage-1>=0?"":"disabled"%> onClick="form1.action='';form1.target='';form1.page.value=<%=(CurPage - 1)%>">
      </td>
      <td width='60' align='center'>
       <input type="submit"  class="anniu" name="NextPage" value="下 頁" <%=CurPage+1<MaxPages?"":"disabled"%> onClick="form1.action='';form1.target='';form1.page.value=<%=(CurPage + 1)%>">
      </td>
      <td width='60' align='center'>
      <input type="submit"  class="anniu" name="LastPage" value="末 頁" <%=CurPage<MaxPages-1?"":"disabled"%> onClick="form1.action='';form1.target='';form1.page.value=<%=(MaxPages-1)%>">
      </td>
      <td width='20' align='center'> 第</td>
      <td width="30" align='center'>
      <select name="selepage" class="xialacaidan" onChange="form1.action='';form1.target='';form1.page.value=this.value;form1.submit();">
      <%
       for(int i=0;i<MaxPages;i++){
         if(i==CurPage){
      %>
       <option value="<%=i%>" Selected><%=(i + 1)%></option>
      <%
         }         
         else{
      %>
       <option value="<%=i%>"><%=(i + 1)%></option>
      <%
         }
       }
      %>
      </select>
      </td>
      <td width="20" align='center'>頁</td>
        </tr>
                  </TABLE>
   <!-- 分頁控制結束 -->

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章