使用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>
   <!-- 分页控制结束 -->

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