①:引入相关js,css(flexigrid.js,flexigrid.css)
②:页面添加一个隐藏的table
<table id="mainListTable" style="display: none"></table>
③:插件初始化
$('#mainListTable').flexReload();
$(function(){
var proId = $('#proId').val();
$('#mainListTable').flexigrid({
url : '${basePath}/back/queryAudit.action?',
method: 'POST',
dataType : 'json',
colModel : [
{display: 'ID', name : 'auditName', width : 30, sortable : false, align: 'center',hide: true,toggle : true},
{display: '意见题目', name : 'auditName', width : 80, sortable : false, align: 'left',hide: false,toggle : true},
{display: '意见简介', name : 'auditComm', width : 450, sortable : false, align: 'left',hide: false,toggle : true},
{display: '意见数', name : 'audits', width : 80, sortable : false, align: 'left',hide: false,toggle : true},
{display: '路径', name : 'quantity', width :200, sortable : false, align: 'center'},
{display: '创建时间', name : 'createTime', width :80, sortable : false, align: 'center'},
{display: '创建人', name : 'createUser', width :80, sortable : false, align: 'center'},
{display: '操作', name : 'operate', width : 250, sortable : false, align: 'center'}
],
height: jQuery(window).height()-450,
//width: 890,
sortname : "id",
sortorder : "asc",
resizable: true,
nowrap:false,
//striped: false,
selectedonclick: true,
singleSelect: true,
usepager: true,
useRp: true,
rowId : 'id',
//showToggleBtn: false,
rowhanlder: true,
rowbinddata: true,
rp :10,
procmsg: '请等待数据正在加载中.....',
rpOptions: [5,10,20, 50]
// rp: <c:if test="${sessionScope.rp==null}"> 25</c:if><c:if test="${sessionScope.rp!=null}">${sessionScope.rp}</c:if>,
//rpOptions: [10, 15, 20, 25, 40, 100]
});
});
④:struts2中的ajax方法
/**
* 查询发布的评论列表
* @return
* @throws IOException
*/
public void queryAudit() throws IOException {
HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("text/html;charset=utf-8");
PrintWriter pw =resp.getWriter();
try {
String proId = req.getParameter("proId");
//当前页
String sql ="select t.ID,t.audit_name,t.audit_comm,t.audit_path,t.CREATETIME,t.CREATE_USER,t.isvalid,t1.audits from tb_audit t left join (select audit_id, count(1) as audits from tb_audit_list group by audit_id) t1 on t.id = t1.audit_id order by t.id desc";
Object[] obj = new Object[]{};
// UserInfo userInfo = (UserInfo) req.getSession().getAttribute(Global.SESSION_USERINFO_NAME);
// //目前只有账号ID为admin的管理员能查看所有发布的题目。其他人只能看到自己发布的题目。
// if(!userInfo.getUserID().equals("admin")){
// sql = sql + " where CREATE_USER = ? ";
// obj = new Object[]{userInfo.getUserID()};
// }
PageBean<Map<String, Object>> page = new PageBean<Map<String,Object>>();
page.setCurrentPage(this.page);
page.setAllRow(StringUtil.isNull(rowall)?0:rowall);
page.setPageSize(StringUtil.isNull(rp)?1000:rp.intValue());
tbProdCategoryService.queryStorageByProId(sql,obj,page);
List storageList = page.getList();
JSONArray array = new JSONArray();
JSONObject pageJSON = new JSONObject();
pageJSON.put("total", page.getAllRow());
pageJSON.put("page", page.getCurrentPage());
JSONObject json = null;
if(null != storageList && storageList.size() > 0){
for(int i=0;i<storageList.size();i++){
Map map = (Map)storageList.get(i);
json = new JSONObject();
json.put("id", map.get("ID"));
String id = map.get("ID").toString();
String auditName = getJson(null == map.get("AUDIT_NAME")?"":map.get("AUDIT_NAME").toString(),false);
String auditComm = getJson(null == map.get("AUDIT_COMM")?"":map.get("AUDIT_COMM").toString(),false);
String audits = null == map.get("AUDITS")?"0":map.get("AUDITS").toString();
String auditPath = null == map.get("AUDIT_PATH").toString()? "":map.get("AUDIT_PATH").toString();
String createTime = null == map.get("CREATETIME")?"":DateUtil.toString((Date)map.get("CREATETIME"), 19);
String createUser = null == map.get("CREATE_USER")?"":map.get("CREATE_USER").toString();
String isValid = null == map.get("ISVALID")?"":map.get("ISVALID").toString();
String onClickStr = "<a href='javascript:void(0);' οnclick='delAudit("+id+")' > 删除 </a>";
if(!isValid.equals("1") ){
onClickStr = onClickStr + " <a href='javascript:void(0);' οnclick='pubAudit("+id+",1)' > 发布 </a>";
}else{
onClickStr = onClickStr + " <a href='javascript:void(0);' οnclick='pubAudit("+id+",0)' > 取消发布 </a>";
}
onClickStr = onClickStr + " <a href='"+req.getContextPath()+"/pages/back/survey/auditHasGrade.jsp?id="+id+"' > 查看审阅 </a>";
String str = "[\""+id+"\",\""+auditName+"\",\""+auditComm+"\",\""+audits+"\",\""+auditPath+"\",\""+createTime+"\",\""+createUser+"\",\""
+onClickStr+
"\"]";
json.put("cell",str);
array.add(json);
}
}
pageJSON.put("rows", array);
pw.write(pageJSON.toString());
} catch (Exception e) {
log.error("StorageManageAction.queryAudit 查询发布的评论列表出错", e);
pw.write("success");
}finally{
if(null != pw){
pw.flush();
pw.close();
}
}
}
action中需要定义的相关属性
private Integer page;//当前页
private Integer rowall;//共多少条
private Integer rp;//每页显示条目
private String sortname = null;
private String sortorder = null;
public PageBean<Map<String, Object>> queryStorageByProId(String sql, Object[] obj, PageBean<Map<String, Object>> page)throws Exception{
return this.retrieve(sql, obj, page);
}
BaseDao中的基本分页对象查询多条记录方法
/**
* 根据分页对象查询多条记录
* @param sql
* @param parObj
* @param pi
* @return
*/
public PageBean<Map<String, Object>> retrieve(String sql, Object[] parObj, PageBean<Map<String, Object>> page){
long firstRow = (page.getCurrentPage()-1)* page.getPageSize();
long lastRow = page.getPageSize();
StringBuffer sbSql = new StringBuffer(sql.length() + 128);
if (page.getAllRow()<= 1) {
String sqlQueryCount = "SELECT COUNT(1) AS COUNT FROM (" + sql + ") AS TOTAL";
Map map = (Map)fetch(sqlQueryCount, parObj);
Number strInt = (Number)map.get("COUNT");
int iRowTotal = strInt.intValue();
page.setAllRow(iRowTotal);
}
if (firstRow <= 0) {
if (lastRow <= 0) { //所有数据
sbSql.append(sql);
} else { //从1-->lastRow
sbSql.append("SELECT * FROM ( ");
sbSql.append(sql);
sbSql.append(" ) AS ROW_ LIMIT " + lastRow);
}
} else {
//从firstRow -- > lastRow
sbSql.append(" SELECT ROW_.* FROM ( ");
sbSql.append(sql);
sbSql.append(" ) ROW_ LIMIT " + firstRow + " ," + lastRow);
}
List list = this.retrieve(sbSql.toString(), parObj);
page.setList(list);
return page;
}