paging.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<script type="text/javascript">
<!--
var jsPageCurrent = 1;//当前页数
var jsPageSize = 10;//每页显示条数
var jsPageCount = 0;//总页数
var jsCountSize = 0;//总条数
var jsPageSizeList = new Array();//每页显示数的数组
jsPageSizeList[0] = 10;
jsPageSizeList[1] = 20;
jsPageSizeList[2] = 40;
jsPageSizeList[3] = 50;
var jsToPageList = new Array();
/*初始化pageSize*/
function initJsPageSize(pagesize)
{
jsPageSize = pagesize;
}
/*初始化所有的分页对象*/
function initAllPageObj(pageCurrent,pageSize,countSize)
{
jsPageCurrent = pageCurrent;
jsPageSize = pageSize;
jsCountSize = countSize;
editPageDiv(jsCountSize);
}
/*根据总数据数展示分页*/
function editPageDiv(backJsCountSize)
{
jsCountSize = backJsCountSize;
if(jsCountSize == 0)
{
jsPageCount = 0;
}else
{
jsPageCount = parseInt((parseInt(jsCountSize)+parseInt(jsPageSize-1))/jsPageSize);
}
revealPageDiv();
}
/*展示分页*/
function revealPageDiv()
{
document.getElementById("jsPageCurrent").innerHTML = jsPageCurrent;
document.getElementById("jsPageCount").innerHTML = jsPageCount;
document.getElementById("jsCountSize").innerHTML = jsCountSize;
addSelect(jsPageSize,jsPageSizeList,"jsPageSize");
toPageSelect();
}
/*到第几页的list*/
function toPageSelect()
{
jsToPageList = new Array();
for(var i = 0;i<jsPageCount;i++)
{
jsToPageList[i] = i+1;
}
addSelect(jsPageCurrent,jsToPageList,"jsTopageCurrent");
}
/*给下拉菜单添加值
*nowValue 当前select值
*arrayList 下拉菜单值数组
*objId 下拉菜单对象ID
*/
function addSelect(nowValue,arrayList,objId)
{
var seleObj = document.getElementById(objId);
seleObj.innerHTML = "";
var listSize = arrayList.length;
for(var i = 0;i<listSize;i++)
{
var newOption = document.createElement("oprion");
seleObj.options[i] = new Option(arrayList[i], arrayList[i]);
if(arrayList[i] == nowValue)
{
seleObj.options[i].selected="selected";
}
}
}
/*改变每页显示数的函数*/
function jsToPageSize()
{
jsPageSize = document.getElementById("jsPageSize").value;
if(jsCountSize == 0)
{
jsPageCount = 0;
}else
{
jsPageCount = parseInt((parseInt(jsCountSize)+parseInt(jsPageSize-1))/jsPageSize);
}
if(jsPageCurrent > jsPageCount)
{
jsPageCurrent = jsPageCount;
}
toPage(jsPageCurrent,jsPageSize);
revealPageDiv();
}
/*翻页*/
function jsToCurrentPage()
{
jsPageCurrent = document.getElementById("jsToPageCurrent").value;
toPage(jsPageCurrent,jsPageSize);
revealPageDiv();
}
//-->
</script>
<div align="center">
第<span id = "jsPageCurrent">1</span>页, 每页
<select id="jsPageSize" οnchange="jsToPageSize()">
</select>条,总共<span id="jsPageCount"></span>页
<span id="jsCountSize"></span>条记录,到
<select id="jsToPageCurrent" οnchange="jsToCurrentPage()">
</select>页
</div>
1、list.jsp
<SCRIPT>
var addressGroupId = 0;
window.onload = function()
{
initJsPageSize (10);
editPageDiv(0);
}
/*根据ID查询通讯录组人员*/
function viewPerson(id)
{
addressGroupId = id;
initAllPageObj(1,10,0);
getPageCount();
}
/*查询指定页数的通讯录组人员*/
function getPerson(pageCurrent,pageSize)
{
var groupTable=$("personTable").tBodies[0];
var Rows=personTable.rows;//myTable的所有行对象
var RowsLength = Rows.length;//myTable的行数
if(RowsLength>1)
{
for(var i=RowsLength-1;i>0;i--)
{
personTable.deleteRow(i);
}
}
document.getElementById("viewPerson").style.display ="";
var callback = function(result)
{
var a=1;
for(var property in result)
{
var bean = result[property];
insPersonRow(result.length,bean,a++);
}
//back();
}
addressDwr.getUserList(addressGroupId,pageCurrent,pageSize,callback);
}
/*查询总条数*/
function getPageCount()
{
addressDwr.getCountSize(addressGroupId,function(result)
{
editPageDiv(result);
});
getPerson(jsPageCurrent,jsPageSize);
}
/*重新遍历Table*/
function insPersonRow(lenth,bean,a)
{
var newRow=personTable.insertRow(a);//插入新行
var Cells=newRow.cells;//类似数组的Cells
var Rows=personTable.rows;//myTable的所有行对象
for(var k=1;k<=7;k++)
{
var newCell=Rows(newRow.rowIndex).insertCell(Cells.length);
switch (k)
{
case 1 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personInfoUri+'</td>';break;
case 2 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personInfoName+'</td>';break;
case 3 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personListName+'</td>';break;
case 4 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personPosition+'</td>';break;
case 5 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personOfficeTelNumDef+'</td>';break;
case 6 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personMobileTel+'</td>';break;
case 7 : newCell.align="center";
newCell.innerHTML='<td>'+bean.personEmailAddress+'</td>';break;
}
}
}
/*翻页*/
function toPage(jsPageCurrent,jsPageSize)
{
getPerson(jsPageCurrent,jsPageSize);
}
</SCRIPT>
<div id="viewPerson" style="display: none">
<table width="100%" border="0" cellpadding="4" cellspacing="1" class="Table_content" id="personTable">
<tr align="center">
<th width="20%"> URI </th>
<th width="15%">名称</th>
<th width="15%" >部门名称</th>
<th width="10%">职位</th>
<th width="10%">办公电话</th>
<th width="10%">移动电话</th>
<th width="20%"> EMAIL </th>
</tr>
</table>
<%@ include file="/paging.jsp" %>
</div>
2、AddressDwr.java
......
public Integer getCountSize(Long addressGroupId)
{
return this.addressGroupUserDS.getCountSize(addressGroupId);
}
public List<PersonInfo> getUserList(Long addressGroupId,Integer pageNum,Integer pageSize)
{
return addressGroupUserDS.findByAddressGroupId(addressGroupId,pageNum,pageSize);
......
3、AddressGroupUserDAO.java
......
public List<PersonInfo> findByAddressGroupId(long addressGroupId, int pageNum,
int pageSize)
{
String hql = "select p from PersonInfo p,AddressGroupUser a where a.addressGroupId = ? and p.personInfoUri = a.addressUserCode ";
return this.getSession().createQuery(hql).setLong(0, addressGroupId).setFirstResult((pageNum-1)*pageSize).setMaxResults(pageSize).list();
}
public int getCountSize(Long addressGroupId)
{
String hql = "select count(*) from AddressGroupUser a where a.addressGroupId = ? ";
List list = this.getSession().createQuery(hql).setLong(0, addressGroupId).list();
return Integer.parseInt(list.get(0).toString());
}
}