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