jQuery MiniUI

 找回密码
 立即注册
查看: 8074|回复: 9
打印 上一主题 下一主题

你们datagrid的分页究竟是 前台分页 还是后台分页??? [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-11-6 09:57:33 |只看该作者 |倒序浏览
Java代码如下:

  1. String rolename = request.getParameter("rolename");
  2.                 String pageIndex = request.getParameter("pageIndex");
  3.                 String pageSize = request.getParameter("pageSize");
  4.                 int total = innerSysRoleService.countByExample(new InnerSysRoleExample());
  5.                 int pIndex = 0;
  6.                 int pSize = total;
  7.                 if(null != pageIndex) {
  8.                         pIndex = Integer.parseInt(pageIndex);
  9.                 }
  10.                 if(null != pageSize) {
  11.                         pSize = Integer.parseInt(pageSize);
  12.                 }
  13.                 InnerSysRoleExample example = new InnerSysRoleExample();
  14.                 if(null != rolename && !rolename.equals("")) example.createCriteria().andRoleNameLike("%" + rolename + "%");
  15.                 List list = innerSysRoleService.selectByExample(example,pIndex * pSize,pSize); //这会查出部分数据,用这种方法 总页数 总是1
  16.                 //LSit list = innerSysRoleService.selectByExample(example);
复制代码


html的如下:
  1. <div size="180" maxSize="250" minSize="100" style="margin-left: 1px;float: left" showCollapseButton="true" >
  2.                        <div id="roles" class="mini-datagrid" style="width:350px;height:300px;"
  3.                         url="${ctx}/innersysrole/findAllRoles"  这里就是调用上面的Java代码查出来的数据
  4.                         onrowclick="rowClick"
  5.                         allowAlternating="true"
  6.                         idField="roleId">
  7.                         <div property="columns">
  8.                             <div field="roleId" width="20" headerAlign="center" >角色ID</div>
  9.                                    <div field="roleName" width="120" headerAlign="left" >角色名</div>
  10.                                </div>
  11.                 </div>
  12.         </div>
复制代码

问题 和Java代码 中的红字差不多,
如果我一次查出所有 的数据 , 前台 页码正常,但 每一页都显示所有 数据 ,
如果我一次查出部分数据,前台总页数就只有一页,

Rank: 8Rank: 8

沙发
发表于 2013-11-6 10:21:58 |只看该作者
默认后台,你返回的是全部数据,那当然每页都是全部数据了
你必须通过pageIndex和pageSize来返回数据片段才会有分页效果

Rank: 2

板凳
发表于 2013-11-6 10:26:40 |只看该作者
factory 发表于 2013-11-6 10:21
默认后台,你返回的是全部数据,那当然每页都是全部数据了
你必须通过pageIndex和pageSize来返回数据片段才会 ...

那上面不是说了么,用了pageIndex和pageSize的时候 总页数 将 一直是1,所以根本 都 不能翻页

Rank: 8Rank: 8

地板
发表于 2013-11-6 10:30:47 |只看该作者
inmove 发表于 2013-11-6 10:26
那上面不是说了么,用了pageIndex和pageSize的时候 总页数 将 一直是1,所以根本 都 不能翻页 ...

总页数是你给我们的全部数据的条数/每条条数,分页控件内部会根据你的每页条数pageSize和数据总数,计算出总共分成几页.你只要正确给出数据总数,也就是total,怎么可能会给你只分一页? 除非你的每条显示的条数,能够把你所有数据在一页上显示完

你看我们的demo,那么多表格例子,不都是可以正常分页的?而且都是服务端的分页,除了客户端分页的例子

Rank: 2

5#
发表于 2013-11-6 10:36:31 |只看该作者
factory 发表于 2013-11-6 10:30
总页数是你给我们的全部数据的条数/每条条数,分页控件内部会根据你的每页条数pageSize和数据总数,计算出 ...

我就是想知道 要怎么给 这个总数!
昨天 说用 grid.setTotalCount(); 我设置 了 根本 不起作用,

Rank: 8Rank: 8

6#
发表于 2013-11-6 10:39:20 |只看该作者
inmove 发表于 2013-11-6 10:36
我就是想知道 要怎么给 这个总数!
昨天 说用 grid.setTotalCount(); 我设置 了 根本 不起作用,
...

晕,我昨天贴给你的那个教程你没看的?

后台返回数据格式
{
   total:1000,
   data:[...]
}
total就是你的数据总数

Rank: 2

7#
发表于 2013-11-6 10:45:45 |只看该作者
factory 发表于 2013-11-6 10:39
晕,我昨天贴给你的那个教程你没看的?

后台返回数据格式

- -!

我试一下 这个 先。。

Rank: 2

8#
发表于 2013-11-6 10:58:50 |只看该作者
factory 发表于 2013-11-6 10:39
晕,我昨天贴给你的那个教程你没看的?

后台返回数据格式

用拼接字符串的 方式 返回那个 格式的数据  总算是 解决了。。- - 谢了

Rank: 8Rank: 8

9#
发表于 2013-11-6 11:03:56 |只看该作者
inmove 发表于 2013-11-6 10:58
用拼接字符串的 方式 返回那个 格式的数据  总算是 解决了。。- - 谢了

json的字符串最好不要手动拼接
用下载的试用包里面有个JSON.CS,你拷贝过去,然后用这个去把数据序列化化成json字符串,因为如果你手动拼接字符串的话,一个是太麻烦太累,第二个很可能会在前后台反序列化的时候直接出错.

Rank: 2

10#
发表于 2013-11-6 13:33:21 |只看该作者
factory 发表于 2013-11-6 11:03
json的字符串最好不要手动拼接
用下载的试用包里面有个JSON.CS,你拷贝过去,然后用这个去把数据序列化化成 ...

本来是用的JSONArray 的一个方法 返回 的,但是没有 total这一个属性,所以 也就 拼接了 这一个total而已,暂时先这样了,后面还有好多要改。。

Archiver|普加软件

GMT+8, 2024-5-20 02:11 , Processed in 1.032645 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部