This is what I did for 20 results per page, and control the page by pagenum buttons.
First, get all of your search reasult, then, consider the following code:
Code:
<%
iii18Class.getQuery("III18Class", "MemberPhoto", "MemberDetail", "MemberAdvancedDetail");
Vector details = (Vector) iii18Class.getDetails("III18ClassContent");
String pageNums = (String)application.getAttribute("pageNum");
int pageCount = details.size() / 20 + 1;
if(pageNums == null ){
pageNums = "1";
}
int pNo = Integer.parseInt(pageNums);
out.print("<input class=pagenum type=submit name=pageBtn value=" + 1 + ">" + "...");
if (details.size() <= 20) {
out.print("<input class=pagenum type=submit name=pageBtn value=" + 1 + ">");
}
if (details.size() > 20) {
if(pNo > 4){
if(pNo < details.size() / 20 + 1){
for (int i = pNo - 3; i <= pNo + 1; i++) {
out.print("<input class=pagenum type=submit name=pageBtn value=" + i + ">");
}
}
else if(pNo == pageCount){
for (int i = pNo - 4; i < pNo + 1; i++) {
out.print("<input class=pagenum type=submit name=pageBtn value=" + i + ">");
}
}
}
else{
if(pageCount < 5){
for (int i = 1; i <= pageCount; i++) {
out.print("<input class=pagenum type=submit name=pageBtn value=" + i + ">");
}
}
else if(pageCount >= 5){
for (int i = 1; i <= 5; i++) {
out.print("<input class=pagenum type=submit name=pageBtn value=" + i + ">");
}
}
}
}
out.print("..." + "<input class=pagenum type=submit name=pageBtn value=" + pageCount + ">");
%>
Code:
<%
request.setCharacterEncoding("big5");
String pageBtn = (String) request.getParameter("pageBtn");
session.setAttribute("pages", pageBtn);
String color = "";
int pageNo = 0;
if (pageBtn == null) {
pageNo = 1;
}
else {
pageNo = Integer.parseInt(pageBtn);
}
for (int i = (pageNo - 1 + (pageNo - 1)) * 10; i <= ((pageNo * 2) - 1) * 10 + 9; i++) {
String[] dat = new String[6];
if (i >= details.size()) {
return;
}
dat = (String[]) details.elementAt(i);
if (i % 2 == 0) {
color = "t_one";
}
else {
color = "t_two";
}
%>