å 为EasyUI DataGridåªè¦ååºåå°ä¼ è¿æ¥çä¸å®æ ¼å¼çJSONæ°æ®ï¼å°±å¯ä»¥å¨åå°é¡µé¢æ°æ®è¡¨æ ¼ä¸ï¼ä»¥ä¸å®å½¢å¼æ¾ç¤ºæ°æ®åºä¸çæ°æ®ãæ¤å¤ï¼æ们使ç¨Struts2æ¡æ¶æ´åDataGridï¼å®ç°æ°æ®çæ¾ç¤ºã
ä¸ã页é¢å 容
为äºå¨é¡µé¢ä¸æ¾ç¤ºæ°æ®åºä¸å段å 容ï¼éè¦å®ä¹ä¸ä¸ªtableï¼éè¿EasyUIå é¨è®¾è®¡ï¼èªå¨æ¾ç¤ºæ°æ®ï¼å¦ä¸ï¼
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>æ¿äº§ä¿¡æ¯ç®¡ç</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<table id="housesManage" style="height: 100%"></table>
<div id="addHouse"></div>
<div id="updateHouse"></div>
<script type="text/javascript">
$(document).ready(function(){
//datagrid设置
$('#housesManage').datagrid({
title:'æ¿äº§å表', //è¡¨æ ¼æ é¢
iconCls:'icon-list', //è¡¨æ ¼å¾æ
nowrap: false, //æ¯å¦åªæ¾ç¤ºä¸è¡ï¼å³ææ¬è¿å¤æ¯å¦çç¥é¨åã
striped: true,
fitColumns:true, //é²æ¢æ°´å¹³æ»å¨
scrollbarSize:0, //å»æå³ä¾§æ»å¨æ¡å
url:"houses/showHouses!show", //actionå°å
idField:'id',
collapsible:false,//æ¯å¦å¯æå ç
singleSelect:true,//åªè½åé
frozenColumns:[[
{field:'ck',checkbox:true}
]],
pagination:true, //å å«å页
pageSize: 10,
pageList: [10,20,30],//å¯ä»¥è®¾ç½®æ¯é¡µè®°å½æ¡æ°çå表
rownumbers:true,
singleSelect:true,//åªè½åé
columns :[[{
field : 'id',
title : 'ID',
align:'center',
hidden : true
},{
field : 'unitNum',
title : "楼æ å·",
width : 100,
align:'center',
sortable : true,
},{
field : 'doorCard',
title : "é¨çå·",
width : 100,
align:'center',
sortable : true,
},{
field : 'roomArea',
title : "æ¿å±é¢ç§¯(平米)",
width : 100,
align:'center',
sortable : true,
},{
field : 'buildTime',
title : "建çæ¶é´",
width : 150,
align:'center',
sortable : true,
},{
field : 'isUse',
title : "使ç¨ç¶æ",
width : 80,
align:'center',
sortable : true,
formatter: function(value,row,index){
if(value=="0"){
return '已使ç¨';
}else{
return '<font color="red">空置</font>';
}
}
}]],
toolbar:[{
text:'æ·»å ',
iconCls:'icon-add',
handler:function(){
//æ¾ç¤ºä¸ä¼ çé¢
$('#addHouse').dialog({
title: 'æ¿äº§ç®¡ç|æ·»å æ¿å±ä¿¡æ¯',
width: 500,
iconCls:'icon-add',
height: 300,
closed: false,
cache: false,
href: 'houses/addHouse.jsp',
modal: true
});
}
}, '-', {
text: "å é¤",
iconCls: "icon-cut",
handler: function () {
//éä¸è¦ä¿®æ¹å é¤çè¡
var rows = $("#housesManage").datagrid('getSelections'); //è¿åææéä¸çè¡
if (rows.length > 0) {//éä¸å è¡çè¯è§¦åäºä»¶
$.messager.confirm("æ示", "æ¨ç¡®å®è¦é置该ç¨æ·å¯ç åï¼", function (res) {//æ示æ¯å¦å é¤
if (res) {
//è·å¾ç¼å·
var id=rows[0].id;
// è·å¾å é¤è¡ç´¢å¼
var tableindex = $("#housesManage").datagrid('getRowIndex', id);
$.post('houses/delHouse!delete',{
"house.id":id
},function(data){
if(data.message=="2"){
$.messager.alert('温馨æ示','å é¤å¤±è´¥!','error');
}else{
//å é¤éä¸çè¡
$("#housesManage").datagrid("deleteRow",tableindex);
}
});
}
});
}
}
},'-',{
text: "ä¿®æ¹",
iconCls: "icon-edit",
handler: function (){
//éä¸è¦ä¿®æ¹å é¤çè¡
var rows = $("#housesManage").datagrid('getSelections'); //è¿åææéä¸çè¡
if (rows.length > 0) {//éä¸å è¡çè¯è§¦åäºä»¶
//è·å¾ç¼å·
var id=rows[0].id;
//æ¾ç¤ºä¿®æ¹çé¢
$('#updateHouse').dialog({
title: 'æ¿äº§ç®¡ç|ä¿®æ¹æ¿å±ä¿¡æ¯',
width: 500,
iconCls:'icon-edit',
height: 300,
closed: false,
cache: false,
href: 'houses/getHouse!get?house.id='+id,
modal: true
});
}
}
},'-',{
text: "å·æ°å表",
iconCls: "icon-reload",
handler: function (){
$("#housesManage").datagrid('reload');
}
}] ,onLoadError : function() {
$.messager.alert('温馨æ示','æ°æ®å 载失败!','error');
}
});
displayMsg();
});
//æ¹åå页æ¾ç¤º
function displayMsg() {
$('#housesManage').datagrid('getPager').pagination({
displayMsg : 'å½åæ¾ç¤º<font color="red"> {from} - {to} </font>æ¡è®°å½ å ± <font color="red">{total}</font> æ¡è®°å½'
});
}
</script>
</body>
</html>
äºãstruts.xmlä¸é ç½®
<!-- æ¾ç¤ºæ¿äº§ä¿¡æ¯ -->
<action name="showHouses" class="com.wy.action.HouseAction" method="show">
<result type="json" name="success">
<param name="root">result</param>
</result>
</action>
ä¸ã对åºçAction å¤çç±»
private JSONObject result; //è¿åçjson
private String rows; //æ¯é¡µæ¾ç¤ºçè®°å½æ°
private String page; //å½å第å 页
//æ¾ç¤ºæ¿äº§åºæ¬ä¿¡æ¯
public String show(){
//å½å页
int intPage = Integer.parseInt((page == null || page == "0") ? "1":page);
//æ¯é¡µæ¾ç¤ºæ¡æ°
int number = Integer.parseInt((rows == null || rows == "0") ? "10":rows);
//æ¯é¡µçå¼å§è®°å½ 第ä¸é¡µä¸º1 第äºé¡µä¸ºnumber +1
int start = (intPage-1)*number;
HouseDao houseDao=new HouseDao();
ArrayList<THouse> listHouses=houseDao.getHouses(start, number); //ä»æ°æ®åºä¸æ¥è¯¢æ°æ®
Map<String, Object> jsonMap = new HashMap<String, Object>();//å®ä¹map
int count=houseDao.getHouseCount(); //æ±åºæ»è®°å½æ°
//totalé® åæ¾æ»è®°å½æ°ï¼å¿ é¡»ç
jsonMap.put("total", count);
jsonMap.put("rows", listHouses);//rowsé® åæ¾æ¯é¡µè®°å½ list
result=JSONObject.fromObject(CommonUtil.getJsonNotNull(jsonMap));
return SUCCESS;
}
action ç±»ä¸ï¼rowsï¼page æ¯ç¨äºEasyUIå页æä½çï¼EasyUIä¼èªå¨ååå°ä¼ å ¥åæ°ï¼å½å页åæ¯é¡µæ¾ç¤ºè®°å½æ°ï¼ä»¥æ¤å®ç°å页åè½ï¼æ¤å¤åªéè¦å®ä¹è¿ä¸¤ä¸ªåéå³å¯ã
{"total":5,"rows":[{"doorCard":"1-1101","id":22,"roomArea":"140","unitNum":1,"tusers":[],"isUse":"1","buildTime":"2015-04-01"},{"doorCard":"1-1202","id":29,"roomArea":"160","unitNum":1,"tusers":[],"isUse":"0","buildTime":"2015-04-06"},{"doorCard":"2-2202","id":28,"roomArea":"160","unitNum":2,"tusers":[],"isUse":"0","buildTime":"2015-04-06"},{"doorCard":"3-3301","id":26,"roomArea":"150","unitNum":3,"tusers":[],"isUse":"1","buildTime":"2015-04-13"},{"doorCard":"3-2102","id":27,"roomArea":"160","unitNum":3,"tusers":[],"isUse":"1","buildTime":"2015-04-06"}]}
äºãæææªå¾