Jquery Datatables 异步分页加载数据

原文: 

Jquery Datatables 异步分页加载数据

正在做的一个Web项目,其中用到了jQuery datatables这个表格控件,说实话挺好用的,顺便自己记录一下

首先,定义一个<table>表格

response.setCharacterEncoding("UTF-8");  
PrintWriter out = null;  
String json = null; // 返回的json数据    
try  
{  
    out = response.getWriter();  
}  
catch (IOException e)  
{  
    e.printStackTrace();  
}  
String statName = null;  
String sEcho = "0";// 记录操作的次数  每次加1  
String iDisplayStart = "0";// 起始  
String iDisplayLength = "10";// size  
int count = 0; //查询出来的数量  
String aoData = request.getParameter("aoData");  
//获取jquery datatable当前配置参数  
JSONArray jsonArray = JSONArray.fromObject(aoData);  
for (int i = 0; i < jsonArray.size(); i++)  
{  
    try  
    {  
        JSONObject jsonObject = (JSONObject)jsonArray.get(i);  
        if (jsonObject.get("name").equals("sEcho"))  
            sEcho = jsonObject.get("value").toString();  
        else if (jsonObject.get("name").equals("iDisplayStart"))  
            iDisplayStart = jsonObject.get("value").toString();  
        else if (jsonObject.get("name").equals("iDisplayLength"))  
            iDisplayLength = jsonObject.get("value").toString();  
        else if (jsonObject.get("name").equals("statId"))  
            statName = jsonObject.get("value").toString();                  
    }  
    catch (Exception e)  
    {  
        break;  
    }  
}  
  
JSONArray jsonArray2 = new JSONArray();  
JSONObject jsonObject2 = new JSONObject();  
  
StatCleanService service = new StatCleanService();  
//为操作次数加1  
int initEcho = Integer.parseInt(sEcho) + 1;  
count = service.getStatCleanRevampCount(statName);//总记录数  
List statFailList = service.getStatCleanRevampList(Integer.parseInt(iDisplayStart), Integer.parseInt(iDisplayLength), statName);  
for (Object object : statFailList)  
{  
    StatCleanRevampNoticeTable table = (StatCleanRevampNoticeTable)object;  
    jsonObject2.put("statCleanRevampId", table.getStatCleanRevampId());  
    jsonObject2.put("statCleanId", table.getStatCleanId());  
    jsonObject2.put("statId", table.getStatId());  
    jsonObject2.put("statName", table.getStatName());  
    jsonObject2.put("revampStatus", table.getRevampStatus());  
    jsonObject2.put("problemDes", table.getProblemDes());  
    jsonArray2.add(jsonObject2);  
}  
  
json = "{\"sEcho\":" + initEcho + ",\"iTotalRecords\":" + count + ",\"iTotalDisplayRecords\":" + count + ",\"aaData\":" + jsonArray2.toString() + "}";  
//传到页面    
out.println(json);  
out.close();  



其中参数



[java] view plain copy
 



sEcho,iTotalRecords,iTotalDisplayRecords,aaData名称是固定的,不能修改;  
iDisplayStart,iDisplayLength为每次查询的起始记录和长度;  


加载页面url链接-->load form-->指向分页的action-->json数据返回给页面
效果图如下:

Jquery Datatables 异步分页加载数据

相关推荐