自从推广前后端分离模式后,前后端开发者开始为数据格式相爱相杀。对于我们的前端来说,后端返回的数据实在是让人看不懂。我们来做一个表格,后端返回的期望数据格式是这样的:{"list":[{"name":"baukh","age":"28","info":"wildfront-endprogram"},{"name":"baukh","age":"28","info":"狂野的前端程序",}],"totals":2}不过后端小哥一样猛如虎,返回如下Format:{code:200,msg:'success',data:{//预期返回数据不包含该层"data":[{"name":"baukh","birthday":"1995-03-12",//期望返回年龄,却返回了生日"info":"wildfront-endprogram",},{"name":"baukh","birthday":"1995-03-12","info":"野前端程序"}],"sum":2//期望返回总数,结果返回的是生日}}那我留给你一句,怎么样框架以及分页组件如何。.只是让你目瞪口呆。但是前端的表格组件也是需要固定格式的,你心里想:“再不看你五大三粗,真想打爆你的肺”。但问题仍然需要解决。接下来看看在GridManager组件中如何解决这个问题:解决冗余嵌套问题,前端需要返回的对象包含项目总数和当前页面的数据集,而后面end不仅字段不匹配,而且在它上面包裹了另一层结构。这时候可以通过执行请求后执行程序responseHandler来组织数据:data.data.map(item=>{item.age=year-item.birthday.split('-')[0];//为每条数据添加年龄属性,也可以在columnData中处理。template(下面有例子).returnitem;}),totals:response.data.sum};},//其他配置项...});解决字段不匹配的问题。刚改完,后台小哥说:“我也觉得多出来的层没用,我就把那层去掉了。”于是打开网络,发现数据格式变成了这样:{"data":[{"name":"baukh","birthday":"1995-03-12",//expecttoreturnage,但返回生日"info":"wildfrontend",},{"name":"baukh","birthday":"1995-03-12","info":"wildfrontend"}],"sum":2//期望返回总数,却返回了生日}压抑着即将爆发的小宇宙,安慰自己:把responseHandler中的response.data.data改成response.data就好了。但是GridManager已经想到了这种情况,此时有更简单的方法:newGridManager(table,{dataKey:'list',//指定数组key为listtotalsKey:'sum',//指定总计keyassum//其他配置项...});前端参数改完之后,一波后端请求来了。一个醒目的500状态代码映入眼帘,您知道响应中可能存在空指针。仔细研究了一下,发现是后台小哥秀了一波英语四六级。前面讨论的分页参数如下:cPage为当前页,pSize为每页显示的项目数。后台小哥用英文写了完整的缩写,给你做了这个样式:currentPage是当前页,pageSize是每页显示的item个数。...分页参数key的配置问题还是需要解决,看看GridManager中如何处理这种情况://指定每页显示的项目数,关键是pageSize//其他配置项...});页面开发完成,后台小哥也很满意。本来以为可以冲杯咖啡犒劳一下自己,谁知道产品绕了个圈子:“加个分拣功能。”拉着后端小哥的手,终于设置了万年不变的排序参数:{px_birthday:'down'//你当然会抱怨,我英语才四六级过,我会用拼音顺序。}有了一定的数据格式,一切就简单了。newGridManager(table,{sortKey:'px_',//ajax请求中排序字段使用的前缀,默认为`sort_`sortDownText:'down',//指定降序使用的字符串sortUpText:'up',//指定使用升序排列的字符串columnData:[{key:'name',text:'name'},{key:'birthday',text:'birthday',//列的排序信息Stringtype,Optional//1,'':该列支持排序,但初始化时未指定排序类型//2,'DESC':该列支持排序,指定为降序,可以指定降序通过参数[sortDownText]使用的字符串//3、'ASC':列支持排序,指定为升序。升序使用的字符串可以通过参数[sortUpText]sorting:'',template:(birthday,row)=>{returnnewDate().getFullYear()-birthday.split('-')[0];//可以达到和responseHandler一样的效果}}]//其他配置项...});完成后,成品也令人满意。你自己想,产品没有提到组合排序功能是件好事。如果您想了解组合排序,请查看GridManagerAPI
