继续的dwr----实现分页
要实现分页就要首先配置好参数,用dwr来接受参数,要用到javabean。下面就是我的dwr.xml中的配置。而对于方法的话。可以配置也可以不配置。如果你要配置的话,那就全都配置。默认的情况就是把全部的方法都配置 好了:
其中还有一点的是,在实现分页的时候,由于使用的是js。所以在构造表格的时候要把整个表格都构造,不能只加入一个tr 这样是不行。不支持这个。所以要注意了:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create javas
<param name="class" value="com.cfd.drp.dwr.UserManagerDWR"></param>
<include method="getUsers"/>
<include method="getTotalUsers"/>
</create>
<convert converter="bean" match="com.cfd.drp.sysmgr.User">
<param name="include" value="username,userId,password,email,contactTel,createDate"></param>
</convert>
</allow>
</dwr>
这个文件的配置比较简单,下面的我的dwr直接访问的类了。(javabean我就不写出来了):
package com.cfd.drp.dwr;
imp
imp
imp
public class UserManagerDWR {
public List getUsers(int pageNo,int pageSize) {
List users = new ArrayList();
UserManager manager = UserManager.getInstance();
users = manager.getUsers(pageNo, pageSize);
return users;
}
public int getTotalUsers() {
int total = 0;
List users = new ArrayList();
UserManager manager = UserManager.getInstance();
total = manager.getTotals();
return total;
}
}
再下面就是重点了,就是页面上的js代码了:
<script type="text/javas
//----------------------------dwr 分页开始-------------------------------
//一页的记录数目
var pageSize = 4;
//第几页
var pageNo;
//共计页数
var totalPages;
//共有的记录数目
var totalRecords;
//构建表格 表格的头部
var preString = "<table width='95%' border='1' cellspacing='0' cellpadding='0'align='center' class='table1'><tr><td width='55' class='rd6'><input type='checkbox' name='ifAll' on
//构建表格 表格的中间部分
var mainString = "";
//构建表格 表格的结束
var endString = "</table>";
//日期格式转换
function date2str(d){
var ret=d.getFullYear()+"-"
ret+=("00"+(d.getMonth()+1)).slice(-2)+"-"
ret+=("00"+d.getDate()).slice(-2)+" "
ret+=("00"+d.getHours()).slice(-2)+":"
ret+=("00"+d.getMinutes()).slice(-2)+":"
ret+=("00"+d.getSeconds()).slice(-2)
return ret;
}
//实现上一页功能
function previousPage() {
if(pageNo > 1) {
mainString = "";
pageNo = pageNo -1;
getTotalRecords();
getUsersFromDWR();
document.getElementById("pageNo").innerHTML = pageNo;
}
}
//实现下一页功能
function nextPage() {
if(pageNo < totalPages) {
mainString = "";
pageNo = pageNo + 1;
getTotalRecords();
getUsersFromDWR();
document.getElementById("pageNo").innerHTML = pageNo;
}
}
//进入页面的,取出的记录
function init() {
pageNo = 1;
getTotalRecords();
getUsersFromDWR();
document.getElementById("pageNo").innerHTML = pageNo;
}
function getUsersFromDWR() {
UserManagerDWR.getUsers(pageNo,pageSize,getResult);
}
function getResult(da
for(var i=0;i<da
var email = "/";
var contactTel = "/";
if(da
email = da
}
if(da
contactTel = da
}
mainString = mainString + "<tr><td class='rd8'><input type='checkbox' name='selectFlag' class='checkbox1' value='checkbox'></td><td class='rd8'>"+da
}
document.getElementById("useTable").innerHTML = preString + mainString +endString;
}
function getTotalRecords() {
UserManagerDWR.getTotalUsers(dealTotalRecords);
}
function dealTotalRecords(records){
totalRecords = records;
totalPages = (totalRecords+pageSize-1)/pageSize;
document.getElementById("totalPages").innerHTML = Math.floor(totalPages);
}
//----------------------------dwr 实现分页 结束--------------------------------
function bottomPage() {
}
function topPage() {
}
</script>
中间有些方法就简单了 。
总结一下,整体上比较,其实还是jsp实现分页来比较简单,毕竟jsp是嵌套在页面中的。所以很灵活,但是js还学要构造页面,所以也就稍微麻烦一点。