【mmGrid】关于mmGrid的分页器的BUG问题

Lucay丶 2017-12-25 05:24:07
使用bootstrap前台框架要做出来.NET的gridview的效果实在是太难了,
最后选择了最像gridview的mmGrid控件,
这个控件讲真,多选、反选效果做的还真是像gridview
可是在分页上,借助官方文档的示例做了一个,可是发现了BUG
包括官方文档的BUG……
代码如下

1.JSP
[code=JavaScript]
//报名信息列
var bm_cols = [
{ title:'收费期间', name:'sfqj' ,width:80, align:'center',lockDisplay: true,lockWidth:true },
{ title:'收费批次', name:'sfpc' ,width:120, align:'center',lockDisplay: true,lockWidth:true },
{ title:'已报名项目名称', name:'xmmc' ,width:120, align:'center',lockDisplay: true,lockWidth:true },
{ title:'收费内容', name:'sfnr' ,width:180, align:'center',lockDisplay: true,lockWidth:true },
{ title:'收费起始时间', name:'sfqssj' ,width:120, align:'center',lockDisplay: true,lockWidth:true },
{ title:'收费截止时间', name:'sfjzsj' ,width:120, align:'center',lockDisplay: true,lockWidth:true },
{ title:'收费标准', name:'sfbz' ,width:80, align:'right',lockDisplay: true,lockWidth:true },
{ title:'已收金额', name:'yjje' ,width:80, align:'right',lockDisplay: true,lockWidth:true },
{ title:'是否支付成功', name:'sfzfcg' ,width:80, align:'center',lockDisplay: true,lockWidth:true },
{ title:'操作', name:'', width: 80, align: 'center', renderer: function(val,item,rowIndex){
return "<a href=\"" + item.bmid + "\">报名信息</a>";
//return item.sfqj;
},lockDisplay: true}
];

var service_list = $("#mmg").mmGrid({
cols : bm_cols, //用于显示表头
height : 415,
width : 'auto',
root : 'items',//数据源选择
multiSelect : true,//是否可多选
nowrap: true,
checkCol: true,
indexCol:true,
noDataText:"没有数据", //没有数据时显示没有数据
fullWidthRows: true,
url : "<%=basePath%>/getBmData.action",
method : 'POST',
plugins: [
$('#pg').mmPaginator({}) //这个是用来翻页的
]
});
[/code]


数据源通过后台ajax传过来的json串
2.action

for(int i = 0;i < 50; i++){
jsobject = new JSONObject();
jsobject.put("bmid", "bm00" + i); //数据主键ID
jsobject.put("sfqj", "2017"); //收费期间
jsobject.put("sfpc", "2017010001"); //收费批次
jsobject.put("xmmc", "收费00" + i); //收费项目名称
jsobject.put("sfnr", "收费" + i); //收费内容
jsobject.put("sfqssj", "2017-01-07"); //收费起始时间
jsobject.put("sfjzsj", "2025-09-23"); //收费截止时间
jsobject.put("sfbz", "2,100.03"); //收费标准
jsobject.put("yjje", "0.00"); //已收金额
jsobject.put("sfzfcg", "否"); //是否支付成功
jslist.add(jsobject);
}
jsobject = new JSONObject();
jsobject.put("totalCount", 50);
jsobject.put("items", jslist);
return ActionSupport.SUCCESS;


很显然我已经配合插件自带的mmPaginator分页器 把 totalCount 塞了进去,最后显示的效果却差强人意:
我做了一共50条数据来测试分页结果
大家注意第一页



再看第一页底部的数据,序号仍然是全部数据的最后一条


然后是第二页,很奇怪,第二页顶部确实是从20号索引开始的,但是数据仍然是全部数据的第一条“收费0”


第二页底部却……把所有数据往后错了20个位置……什么鬼这是?


官方文档里的11号分页demo也有这个问题。
这是我找到的demo:http://www.jq22.com/demo/mmGrid-master20150916/examples/index.html

是BUG吧?还是说插件分页器的JS需要改善一下?

有用过mmGrid的大神求解释一下,我实在搞不懂js
...全文
626 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
有小猪佩奇 2019-05-14
  • 打赏
  • 举报
回复
这是服务器分页吧,服务器分页代码有问题?
g1354483 2019-02-24
  • 打赏
  • 举报
回复
你很菜的想法,分页器是按页取数据,你20条一分页就每次请求返回20条,请求的传值有页码,根据页码算返回当页的20条数据,你每次全返回肯定每页都是弟一条开始,还有全部返回很影响性能,如果几万条每次请求都返回你服务器能扛几人同时访问,你以为分页是用来干嘛的,问无聊问题还怪有bug
Lucay丶 2018-08-06
  • 打赏
  • 举报
回复
好吧 没有来回答的我看智商也不过如此

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧