2010-08-04 159 views
0

我在我的代碼中遇到了一個問題,那就是表分頁不起作用。可能只有5條記錄被檢索。請幫我解決我的問題:分頁不起作用

它只是現在顯示在表

<form name ="form" action="Report1.jsp" method="post" > 
<%! int numPages = 0; %> 
<% 
String columnName = ""; 
int count = 0; 
int totalCols = 0; 
int increment = 1; 
int numRows = 0; 


String startIndexString = request.getParameter("startIndex"); 

if(startIndexString == null) { 
startIndexString = "1"; 
} 

int startIndex = Integer.parseInt(startIndexString); 

try{ 

totalCols = 1; 
%> 
    <table border="1" width="84%" align="center" bgcolor=#66CCFF bordercolor=#000000 height="137"> 

     <tr> 
     <div id="container"> 
      <td colspan="7" height="65"> 
      <p align="center"><b>Customer Information Request Form</b></td> 
     </tr> 
       <tr> 
      <td colspan="2" height="33"> 
      <p align="center"> 
      <span style="font-size: 8pt; font-weight:700">CIR_ID</span></td> 
      <td height="33"> 
      <span style="font-size: 8pt; font-weight:700">Bank Name</span></td> 
      <td height="33" width="26%"> 
      <span style="font-size: 8pt; font-weight: 700">Request From</span></td> 
      <td height="33" width="18%" colspan="3"> 
      <span style="font-weight: 700; font-size: 8pt">Created</span><span style="font-size: 8pt; font-weight: 700"> 
      Date</span></td> 
     </tr> 
<% 
for(int j=1; j<=totalCols && rs.next(); j++) { 

%>  
<tr bgcolor="#FFFFFF" onMouseOver="this.bgColor='gold';" onMouseOut="this.bgColor='#FFFFFF';"> 
<td width="3%"><span style="font-size: 8pt"><%=j=j+1%></span></td> 
<td width="10%"><span style="font-size: 8pt"> 
<a href="cir_view.jsp?cir_id=<%=rs.getString("cir_id")%>" Title="View" onClick="return popup(this, 'Report')"> 
<%=rs.getString("cir_id")%> 
</a> 
</span> </td> 
<td width="39%" ><span style="font-size: 8pt"><%=rs.getString("institution_name")%></span></td> 
<td width="26%" align="left"><span style="font-size: 8pt"><%=rs.getString("requester")%></span></td> 
<td width="10%" align="left"><span style="font-size: 8pt"> 
<%=rs.getString("created_date")%></span></td> 
<td width="3%" align="left"><a href="cir_delete.jsp?cir_id=<%=rs.getString("cir_id")%>" class="ask" onclick="target='_blank';"> 
<IMG SRC="12.png" ALT="Delete" BORDER="0" ></a></td> 
<td width="3%" align="left"><a href="cir_update.jsp?cir_id=<%=rs.getString("cir_id")%>" onClick="return popup(this, 'Report')"><IMG SRC="28.png" ALT="Edit" BORDER="0"></a></td> 
</div> 
</tr> 


<% 
} 
List list = new ArrayList(); 

for(int i=0 ; i<100 ; i++){ 

list.add("item"+i); 

} 

numRows = list.size(); 

out.println(" total no. of records : "+ numRows); 

int numRecordsPerPage = 5; 

out.println(" Num of Records per page : " + numRecordsPerPage + "\n"); 

numPages = numRows /numRecordsPerPage ; 

int remain = numRows % numRecordsPerPage ; 

if(remain != 0){ 

numPages = numPages +1 ; 

} 

out.println(" \n no. of pages : " + numPages); 

if((startIndex + numRecordsPerPage) <= numRows) { 

increment = startIndex + numRecordsPerPage ; 
} 
else{ 

if (remain == 0){ 

increment = startIndex + numRecordsPerPage ; 

}else{ 

increment = startIndex + remain; 
} 
} 

for(count = startIndex; count < increment; count++) { 

%><tr><% 
for(int i=1; i<=totalCols; i++) { 

%><td><% out.println(list.get(count-1)); %></td><% 
} 
%></tr><% 

} 
%> 

</td> 
</table> 
Displaying Records: 
<% if(startIndex + numRecordsPerPage < numRows){%> 
<%= " " + startIndex %> - <%= increment - 1 %> 
<%}else{%> 
<%= " " + startIndex %> - <%= numRows %> 
<%}%> 

<%if(startIndex != 1) {%> 
<a href="Report1.jsp?startIndex=<%=startIndex-numRecordsPerPage%>">Previous</a> 
<%}%> 

<%increment += numRecordsPerPage ;%> 
<%if(startIndex + numRecordsPerPage <= numRows){%> 
<a href="Report1.jsp?startIndex=<%=startIndex+numRecordsPerPage %>">Next</a> 
<%}%> 
</tr> 
</table> 
<% 
}catch(Exception exc){ 
out.println(exc.toString()); 
} // end try-catch 
%> 

    <p>&nbsp;</p> 
</form> 


</body> 
<% 
conn.close(); 
rs.close(); 
%> 

回答

0

乍一看我的SQL的第一條記錄,你可以只打印一行becouse你totalCols爲1和J for cxan只能小於或等於totalCols。

totalCols = 1; 
%> 
    <table border="1" width="84%" align="center" bgcolor=#66CCFF bordercolor=#000000 height="137"> 

     <tr> 
     <div id="container"> 
      <td colspan="7" height="65"> 
      <p align="center"><b>Customer Information Request Form</b></td> 
     </tr> 
       <tr> 
      <td colspan="2" height="33"> 
      <p align="center"> 
      <span style="font-size: 8pt; font-weight:700">CIR_ID</span></td> 
      <td height="33"> 
      <span style="font-size: 8pt; font-weight:700">Bank Name</span></td> 
      <td height="33" width="26%"> 
      <span style="font-size: 8pt; font-weight: 700">Request From</span></td> 
      <td height="33" width="18%" colspan="3"> 
      <span style="font-weight: 700; font-size: 8pt">Created</span><span style="font-size: 8pt; font-weight: 700"> 
      Date</span></td> 
     </tr> 
<% 
for(int j=1; j<=totalCols && rs.next(); j++) { 
+0

這是表格的標題。 我應該如何處理結果集? – maas 2010-08-04 06:57:27

+0

我已將它更改爲3,並且僅顯示2條記錄。 如何糾正tmy代碼? – maas 2010-08-04 07:20:17

+0

我建議在for之前編寫所有的分頁計算,然後用於(j = startIndex; j Random 2010-08-04 11:47:46