昨天写的 Struts2绑定Jquery EasyUI 只是描述了struts绑定JqueryEasyUI的datagrid,只是把从后台读取出来的数据绑定到datagrid上,并没有实现分页功能,今天在昨天的功能上实现分页功能。
1、js代码:
<script>
$(function(){
$('#tt').datagrid({
title:'交易码列表',
iconCls:'icon-edit',//图标
width: 700,
height: 'auto',
nowrap: false,
striped: true,
border: true,
collapsible:true,//是否可折叠的
fit: true,//自动大小
url:'admin/TransCode-list',
//sortName: 'code',
//sortOrder: 'desc',
remoteSort:false,
idField:'id',
singleSelect:false,//是否单选
pagination:true,//分页控件
rownumbers:true//行号
});
//设置分页控件
var p = $('#tt').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数,默认为10
pageList: [5,10,15],//可以设置每页记录条数的列表
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录'
});
});
</script>
对昨天 绑定用的datagrid(){}进行了修改,把columns写在了jsp里面了,这样看着js代码比较舒服,呵呵!
2、jsp代码:
<table id="tt">
<thead>
<tr>
<th field="id" width="100">ID</th>
<th field="tranNo" width="100">交易码</th>
<th field="tranName" width="100">交易名称</th>
<th field="cr_Num" width="100">CR号</th>
</tr>
</thead>
</table>
3、action代码:
public class TransCodeAction extends ActionSupport {
private List<TransCode> transCodes;
private TransCodeManager transCodeManager;
private int id;
private JSONObject resultObj ;
private String rows;//每页显示的记录数
private String page;//当前第几页
//这两个属性是datagrid分页提供的两个参数,参数名一定是这样的,当前台发送请求时会把这两个数据带到action中
public JSONObject getResultObj() {
return resultObj;
}
public void setResultObj(JSONObject resultObj) {
this.resultObj = resultObj;
}
public String list() {
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json");
//当前页
int intPage = Integer.parseInt((page == null || page == "0") ? "1":page);
//每页显示条数
int number = Integer.parseInt((rows == null || rows == "0") ? "5":rows);
//每页的开始记录 第一页为1 第二页为number +1
int start = (intPage-1)*number;
transCodes = transCodeManager.getAllByPage(start,number);//通过hibernate进行分页查询
ArrayList al = new ArrayList();
for(TransCode tc:transCodes)
{
Map<String, Object> m = new HashMap<String, Object>();
m.put("id", tc.getId());
m.put("tranName", tc.getTranName());
m.put("tranNo", tc.getTranNo());
m.put("cr_Num", tc.getCr_Num());
al.add(m);
}
Map<String, Object> json = new HashMap<String, Object>();
json.put("total", transCodeManager.totalCount());//total键 存放总记录数,必须的 json.put("rows", jsonArray);// rows键 存放每页记录 list (粗体字表示所有记录数据条数)
json.put("rows", al);
resultObj = JSONObject.fromObject(json);// 格式化result一定要是JSONObject
return SUCCESS;
}
public List<TransCode> getTransCodes() {
return transCodes;
}
public void setTransCodes(List<TransCode> transCodes) {
this.transCodes = transCodes;
}
public TransCodeManager getTransCodeManager() {
return transCodeManager;
}
@Resource
public void setTransCodeManager(TransCodeManager transCodeManager) {
this.transCodeManager = transCodeManager;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getRows() {
return rows;
}
public void setRows(String rows) {
this.rows = rows;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
}
加粗部分都是新添加或者修改的。
3、struts.xml
<package name="admin" namespace="/admin" extends="json-default" >
<action name="*-list" class="TransactionSystem.action.{1}Action" method="list">
<result type="json" >
<param name="root">resultObj</param>
</result>
</action>
</package>
效果图