hibernate+dwr+js+html 分页(3)

7、PageUtil类

package com.linbs.usermanage.page;

import com.linbs.usermanage.model.User;
import com.linbs.usermanage.service.UserService;
import com.linbs.usermanage.service.impl.UserServiceImpl;

public class PageUtil {
private static UserService userService = new UserServiceImpl();

public static Page getPage(int totalRows, int currentPage, String pagerMethod,int pageSize) {
Page page = new Page(totalRows,pageSize);
page.refresh(currentPage);
if (pagerMethod != null) {
if (pagerMethod.equals("first")) {
page.first();
} else if (pagerMethod.equals("previous")) {
page.previous();
} else if (pagerMethod.equals("next")) {
page.next();
} else if (pagerMethod.equals("last")) {
page.last();
}
}
return page;
}
}

8、dwr层接口

package com.linbs.usermanage.controller.dwr;

import java.util.HashSet;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.linbs.core.common.exception.BusinessException;
import com.linbs.usermanage.model.Module;
import com.linbs.usermanage.model.Placard;
import com.linbs.usermanage.page.Page;
import com.linbs.usermanage.service.ModuleService;
import com.linbs.usermanage.service.PlacardService;
import com.linbs.usermanage.service.impl.ModuleServiceImpl;
import com.linbs.usermanage.service.impl.PlacardServiceImpl;

public class PlacardManager {

public List<Placard> getPlacardByPage(int startIndex , int length, Placard placardExample, int moduleId){
if(moduleId!=0){
placardExample.setModules(new HashSet(0));
Module module = new Module();
module.setId(moduleId);
placardExample.getModules().add(module);
}
return placardService.getPlacardByPage(startIndex, length, placardExample);
}

public Page getPage(Placard placardExample, int moduleId, int currentPage,int pageSize,String pagerMethod){
if(moduleId!=0){
placardExample.setModules(new HashSet(0));
Module module = new Module();
module.setId(moduleId);
placardExample.getModules().add(module);
}
int totalRows = placardService.getPlacardLength(placardExample);
Page page = PageUtil.getPage(totalRows, currentPage,pagerMethod,pageSize);
return page;
}
}

9、视图层调用 js:

var cellFuncs = [
function(data) {
var str = "<input type=\"checkbox\" name=\"chooseRow\" value=\""+data.id+"\">";
return str
},
function(data) {
return "<a href=\"placardShow.html?placardId="+data.id+"\" target=new>"+data.title;
},
function(data) {
return data.publisher;
},
function(data) {
var submitTime = data.submitTime;
if(submitTime!=null)return submitTime.toLocaleDateString();
else return "";
},
function(data) {
var moduleValues = "";
for (var i = 0; i < data.modules.length; i++) {
moduleValues = moduleValues + data.modules[i].moduleName;
if (i != (data.modules.length - 1))
moduleValues += ";";
}
return moduleValues;
},
function(data) {
var oprations = "";
if(data.status==0)
oprations += "<a href=\"#\" onclick=\"changePlacardStatus(true,'"+data.id+"')\">设为最新</a>  ";
else oprations += "<a href=\"#\" onclick=\"changePlacardStatus(false,'"+data.id+"')\">取消最新</a>  ";
oprations += "<a href=\"#\" onclick=\"showUpdatePlacardLayer('"+data.id+"')\">修改</a>  ";
oprations += "<a href=\"#\" onclick=\"deleteOnePlacard('"+data.id+"')\">删除</a>";
return oprations
}
];

var page;
var placardSample;
var moduleSample;
var pageSize =15;
function getPlacardInfo(placard,moduleId,currentPage,pagerMethod) {
placardSample = placard;
moduleSample = moduleId;
//取得页面Page
PlacardManager.getPage(placard,moduleId,currentPage,pageSize,pagerMethod,function(data){
page = data;
setPageMenu(page, $('pageMenu'));
//根据Page取得当前页面公告
PlacardManager.getPlacardByPage(page.startIndex,page.pageSize,placardSample,moduleSample,function(result){
showPlacardInfo(result);
});
});
}
//显示公告信息
function showPlacardInfo(data){
dwr.util.removeAllRows("placardInfo");
dwr.util.addRows("placardInfo", data, cellFuncs, {
cellCreator : function(options) {
var td = document.createElement("td");
td.align = 'center';
return td;
},
escapeHtml : false
});
}

/**
* 分页标签
* @param {} page
* @param {} pageMenu
*/
function setPageMenu(page, pageMenu) {
var menuInfo = "";
menuInfo += "共" + page.totalRows + "条记录" + " 共" + page.totalPage + "页 当前第"
+ page.currentPage + "页";
menuInfo += " <a href=\"#\" onclick=\"getPlacardInfo(placardSample,moduleSample," + page.currentPage
+",'first')\">首页</a>";
if (page.hasPrePage) {
menuInfo += " <a href=\"#\" onclick=\"getPlacardInfo(placardSample,moduleSample," + page.currentPage
+",'previous')\">上一页</a>";
}
if (page.hasNextPage) {
menuInfo += " <a href=\"#\" onclick=\"getPlacardInfo(placardSample,moduleSample," + page.currentPage
+",'next')\">下一页</a>";
}
menuInfo += " <a href=\"#\" onclick=\"getPlacardInfo(placardSample,moduleSample," + page.currentPage
+",'last')\">末页</a>";
pageMenu.innerHTML = menuInfo;
}
/**
* 查询公告
*/
function queryPlacard(){
var title = $('titleSample').value;
var publisher = $('publisherSample').value;
var module = $('modulesInfo').value;
var placard={modules:[]};
if(!isNull(title)) placard.title = title;
if(!isNull(publisher)) placard.publisher = publisher;
getPlacardInfo(placard,module,1,pageSize,"");
}

10、页面jsp:

<table width=99%
style="margin-top: 5px; margin-bottom: 5px; margin-left: 5px; margin-right: 5px;">
<tr>
<td>
标题:
<input type="text" id="titleSample">
<br></td>
<td>
发布人:
<input type="text" id="publisherSample">
<br></td>
<td>
所属模块:
<select id="modulesInfo">
<option value="0">
--所有--
</option>
</select>
<br></td>
<td>
<input type="button" value="查询" onclick="queryPlacard();">
<br></td>
</tr>
</table>
<table width=99% style="margin-top:5px;margin-bottom:5px;margin-left:5px;margin-right:5px;">
<thead>
<tr>
<th> <br></th>
<th>标题<br></th>
<th>发布人<br></th>
<th>修改时间<br></th>
<th>所属模块<br></th>
<th> <br></th>
</tr>
</thead>
<tbody id="placardInfo">
</tbody>
<tfoot>
<tr>
<td colspan="6" align="right">
<div id="pageMenu"></div>
</td>
</tr>
</tfoot>
</table>
<table width=99% style="margin-top:5px;margin-bottom:5px;margin-left:5px;margin-right:5px;">
<tr>
<td><input type="checkbox" id="isChooseAll" onclick="chooseAll();">全选
 
<input type="button" value="删除选中公告" onclick="deletePlacards();">
 
<input type="button" value="将选中公告设为最新" onclick="changePlacardsStatus();">
<br></td>
</tr>
</table>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值