Ext.PagingToolbar 分页问题

kui5656 2011-06-08 04:02:59
我后台传到客户端的数据是22条,我要实现每页显示5条数据,总共5页,奇怪是的,只能翻到第二页就不能往下翻页了,start 和 limit 的的变化如下:
初始化第一页的时候:start:0 limit:5
点击下一页进入第二页的时候:start:5 limit:5
点击下一页进入第三页的时候:start:10 limit:5,到这里就停了,继续点击下一页的时候依然是:start:10 limit:5,当前页显示的是第二页,正常的应该是:start:15 limit:5,为什么第一次翻页没问题,但是继续往后面翻就有问题了呢?这是为什么?贴出部分代码请高手指点一二,小弟感激不尽!



var ds = new Ext.data.Store({
reader:new Ext.data.JsonReader({
totalProperty:"totalProperty",
root:"root",
id:'id',
fields:['id','userName','roleId','roleName','rName','useCompany','status','num','lastTime']
}),
proxy: datas
});
var gridDivId = "user_menu_"+this.pageId ;
this.gridTable = new Ext.grid.GridPanel({
el: gridDivId,
store:ds,
cm:cm,
sm:sma,
stripeRows: true,
//autoExpandColumn:2,
viewConfig:{
forceFit:true
},
//autoHeight:true,
height:Main.getBodyHeight() - 10,
width:Main.getBodyWidth() - 200,
tbar : tbar,
bbar : new Ext.PagingToolbar({
store : ds,
afterPageText: '共{0}页',
beforePageText: '当前页',
lastText:"尾页",
nextText :"下一页",
prevText :"上一页",
firstText :"首页",
refreshText:"刷新页面",
pageSize :5,
displayInfo : true,
displayMsg : ' {0} - {1} 条 共 {2} 条记录',
emptyMsg : "暂无数据"
}),
title:'用户管理'
});
this.gridTable.render();
ds.load({params:{start:0,limit:5}});
...全文
1041 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
月是夜的月 2012-02-23
  • 打赏
  • 举报
回复
GOOD!
kui5656 2011-06-10
  • 打赏
  • 举报
回复
贴出Ext分页源码实例
http://download.csdn.net/source/3352881
kui5656 2011-06-10
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 softroad 的回复:]

json格式错误,前台会报错的吧
[/Quote]

前台没报错!
softroad 2011-06-10
  • 打赏
  • 举报
回复
json格式错误,前台会报错的吧
kui5656 2011-06-10
  • 打赏
  • 举报
回复
原因是我后台传到客户端的JSON格式有误~上面贴出来的是我测试的JSON格式,是正确的,能正常分页,但是我真正的项目中的JSON格式错咯,所以最后我按着上面我贴出来的测试JSON格式对比我项目中的,发现我“}”括号弄错咯,呵呵!害我瞎折腾了几天!需要源码的兄弟姐妹留下邮箱吧!
kui5656 2011-06-09
  • 打赏
  • 举报
回复
我顶.............
kui5656 2011-06-09
  • 打赏
  • 举报
回复
我顶---------------------
softroad 2011-06-09
  • 打赏
  • 举报
回复
晕死,我的是Ext2.1你那是start传参有错误,看看源码吧。
kui5656 2011-06-09
  • 打赏
  • 举报
回复
项目用的是Ext3.3
kui5656 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 softroad 的回复:]

{'metaData': {totalProperty: 'totalProperty', root: 'root', id: 'id',
fields:
[{name: 'a'},
{name: 'b'},
{name: 'c'}]},
totalProperty: 736,
root:
[{'a':'1','b':'2','c':'3'},
{'a':'1','……
[/Quote]

我后台返回的格式没错呀,就贴在上面了!能翻第一和第二页还有最后一页,就是不能翻到第三第四页,我的这个郁闷啊
softroad 2011-06-09
  • 打赏
  • 举报
回复
{'metaData': {totalProperty: 'totalProperty', root: 'root', id: 'id',
fields:
[{name: 'a'},
{name: 'b'},
{name: 'c'}]},
totalProperty: 736,
root:
[{'a':'1','b':'2','c':'3'},
{'a':'1','b':'2','c':'3'},
{'a':'1','b':'2','c':'3'},
{'a':'1','b':'2','c':'3'},
{'a':'1','b':'2','c':'3'},
{'a':'1','b':'2','c':'3'}
]
}
kui5656 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 softroad 的回复:]

JScript code

var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ""
}),
reader: new Ext.data.JsonReader()
……
[/Quote]

listeners: {
"next": function() {
}
}

这个事件没起作用啊?

softroad 2011-06-09
  • 打赏
  • 举报
回复

var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ""
}),
reader: new Ext.data.JsonReader()
});

var s = 20;
var pageToolbar = new Ext.PagingToolbar({
pageSize: s,
store: store,
afterPageText: '/ {0}',
beforePageText: '页',
displayInfo: true,
displayMsg: '显示 {0} - {1} / {2}',
emptyMsg: '没有数据',
firstText: '第一页',
prevText: '前一页',
nextText: '后一页',
lastText: '最后一页',
refreshText: '刷新',
listeners: {
"next": function() {
}
}
});

// create the Grid
var grid = new Ext.grid.GridPanel( {
id : "grid",
title : "查询结果",
store : store,
columns : cols,
stripeRows : true,
enableHdMenu: false,
enableColumnMove: false,
animCollapse: false,
autoScroll: true,
frame: true,
loadMask: {msg: "检索中"},
bbar: pageToolbar
});

grid.render('gridPanel');
store.load({params:{start:0, limit:s}});


我做过的分页,没问题,你试试。
kui5656 2011-06-09
  • 打赏
  • 举报
回复
传到客户端的JSON格式:

{totalProperty:'22',root:[{id:0,userName:'tom0',roleId:0,roleName:'管理员0',rName:'张三0',useCompany:'威盛集团',status:'可用',num:0,lastTime:'2011-5-6'},{id:1,userName:'tom1',roleId:1,roleName:'管理员1',rName:'张三1',useCompany:'威盛集团',status:'可用',num:1,lastTime:'2011-5-6'},{id:2,userName:'tom2',roleId:2,roleName:'管理员2',rName:'张三2',useCompany:'威盛集团',status:'可用',num:2,lastTime:'2011-5-6'},{id:3,userName:'tom3',roleId:3,roleName:'管理员3',rName:'张三3',useCompany:'威盛集团',status:'可用',num:3,lastTime:'2011-5-6'},{id:4,userName:'tom4',roleId:4,roleName:'管理员4',rName:'张三4',useCompany:'威盛集团',status:'可用',num:4,lastTime:'2011-5-6'}]}
kui5656 2011-06-09
  • 打赏
  • 举报
回复
贴出后台的测试代码!


String start=request.getParameter("start");
String limit=request.getParameter("limit");
System.out.println("start:"+start);
System.out.println("limit:"+limit);

Integer first=Integer.parseInt(start);
Integer limitInt=Integer.parseInt(limit);

List<String> list=new ArrayList<String>();
for(int i=0;i<22;i++){
StringBuffer data=new StringBuffer();
data.append("{id:").append(i).append(",userName:'").append("tom"+i+"'")
.append(",roleId:").append(i).append(",roleName:'").append("管理员"+i+"'")
.append(",rName:'").append("张三"+i+"'")
.append(",useCompany:'").append("威盛集团'").append(",status:'").append("可用'")
.append(",num:").append(i).append(",lastTime:'").append("2011-5-6'").append("}");
list.add(data.toString());

}

StringBuffer showData=new StringBuffer();
int end=first+limitInt;
int index = end>list.size()?list.size():end;
for(int i=first;i<index;i++){

System.out.println(list.get(i));

showData.append(list.get(i));
if(i != index-1){
showData.append(",");
}
}

System.out.println(showData.toString());
String json= "{"+
"totalProperty:'"+list.size()+"',"+
"root:["+ showData.toString()+ "]}";
System.out.println(json);
response.getWriter().write(json);
失去乐山贼 2011-06-09
  • 打赏
  • 举报
回复
友情帮顶。
kui5656 2011-06-09
  • 打赏
  • 举报
回复
我顶...
softroad 2011-06-09
  • 打赏
  • 举报
回复
到底啥原因么。楼主?
小魚人 2011-06-09
  • 打赏
  • 举报
回复
樓主分享下,阿拉也遇到此問題了
kui5656 2011-06-09
  • 打赏
  • 举报
回复
[b]问题自己解决了,散分...[/b]
加载更多回复(6)

87,910

社区成员

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

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