使用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'> </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>
<!-- 分頁控制結束 -->