Layui在进行表格渲染时,会请求数据,url即我们请求数据的地址。在请求数据时,layui会默认在地址后面加上limit跟page,即每页显示的条数跟第几页,这两个值是有默认值的,当然我们也是可以自己定义。所以我们想分页显示表格数据时,要在后端的Controller中接收这两个参数,计算出需要显示的数据。下面是具体例子。
我在地址栏输入
会转到页面customType.jsp
@RequestMapping(value = "heatType.do")
public String heatType(){
return "heatType";
}
此页面显示数据用的是layui的表格
layui.use('table', function() {
var table = layui.table
,form = layui.form;
//第一个实例
table.render({
elem: '#customTypeList'
, url: '/customTypeList.do' //数据接口
, cols: [
[ //表头
{field: 'type_name', title: '客户类型名称', width: 250, fixed: 'left'}
, {field: 'type_code', title: '客户类型编码', width: 250}
,{field: 'available', title:'是否启用', width:250, templet: '#switchTpl', unresize: true}
, {fixed: 'right', width: 380, align: 'center', toolbar: '#deal'} //这里的toolbar值是模板元素的选择器
]
]
, skin: 'row' //表格风格
, even: true
, page: true //是否显示分页
, limit: 10
});
这时候浏览器的network是这样显示的
然后我在后端接收了这些数据,并计算出需要显示的数据是哪些。主要是在service中计算出要显示第几条到第几条数据,然后在mybatis中用limit(?,?)找出来。要记得返回数据时把结果放在data里,还有code=0,msg=“”,count=?count则是数据总条数。
@RequestMapping(value = "heatTypeList.do",method = RequestMethod.GET)
public @ResponseBody Map<String, Object> getHeatTypeList(Integer page,Integer limit,String type_name,String type_code){
try {
Map<String, Object> map = new HashMap<>();
if(type_name==""){
type_name=null;
}
if(type_code==""){
type_code=null;
}
List<HeatType> list = heatTypeService.getHeatTypeList(page,limit,type_name,type_code);
Integer count=heatTypeService.getHeatTypeListCount(type_name,type_code);
map.put("code", 0);
map.put("msg", "");
map.put("data", list);
map.put("count",count);
return map;
}catch (Exception e){
return null;
}
}