2
回答
关于JFinal + ExtJS分页问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@JFinal 你好,想跟你请教个问题:

之前用的springmvc+extjs,gridpanel数据分页的时候需要在前台传入分页参数start和limit,比如:start:0,limit:pageSize

现在用jfinal,这样传参数会报PageNumber不能为0(好像是这个),我改成1,虽然可以查询出数据,gridpanel也可以正常显示数据。但是分页信息不对,我有5条记录,我设置的每页显示3条记录,start:1,gridpanel默认显示的第二页,按上一页,后台就会抛出PageNumber不能为0的异常。请问这个我该怎么操作呢?

举报
欠踹de背影
发帖于2年前 2回/280阅
共有2个答案 最后回答: 2年前

   两个方向:

1:将页面中的 pageNumber 全部调为 oldPageNum + 1,传到后端时直接使用

2:保持页面中的 oldPageNum,在后端获取到以后再做 oldPage + 1

引用来自“JFinal”的评论

   两个方向:

1:将页面中的 pageNumber 全部调为 oldPageNum + 1,传到后端时直接使用

2:保持页面中的 oldPageNum,在后端获取到以后再做 oldPage + 1

我在后台将pageNumber做+1处理,可以正常第一页数据,但是第二页没数据。。。
User user = this.getModel(User.class);

        int start = getParaToInt("start") + 1;
        int limit = getParaToInt("limit");

        Page<User> page = user.paginate(start, limit, "SELECT *", "FROM t_user");

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("root", page.getList());
        map.put("totalProperty", page.getTotalRow());
        this.renderJson(map);
第一页数据显示正常,第二页没数据。我在mysql里面运行是有数据的。。。
--- 共有 5 条评论 ---
欠踹de背影回复 @JFinal : 问题解决了。要根据extjs的start、limit来计算pageNumber。extjs默认是传的是开始记录和每页大小,而jfinal分页是页码和每页大小。。。。。 2年前 回复
JFinal回复 @欠踹de背影 : 单步调试,终极武器 2年前 回复
欠踹de背影回复 @JFinal : 我刚用showSql看了后台打印的sql,发现第一页没问题,执行了select count(*) from t_user 和select * from t_user limit 0,3 但是到了第二页,就只执行了select count(*) from t_user 2年前 回复
欠踹de背影回复 @JFinal : 那个Demo我也看过~~我试着用extjs做分页,传参数进去就不行。。。囧~~~ 2年前 回复
JFinal在 jfinal官方下载一个 jfinal demo,里面有代码实例演示分页程序在此下载: http://www.jfinal.com 2年前 回复
顶部