起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3661|回复: 9

[结贴] 分页查询页码问题

[复制链接]

29

主题

110

帖子

196

积分

初级会员

Rank: 2

积分
196
QQ
发表于 2017-11-2 11:16:13 | 显示全部楼层 |阅读模式
QQ图片20171102101617.png 查询是用smartfilter组件 在组件onfilter里面写的事件 用的是普通的data组件

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-2 13:17:10 | 显示全部楼层
普通data是自己拼接的条件,过滤数据查找数据的时候总记录修改了吗
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

29

主题

110

帖子

196

积分

初级会员

Rank: 2

积分
196
QQ
 楼主| 发表于 2017-11-2 14:22:18 | 显示全部楼层
jishuang 发表于 2017-11-2 13:17
普通data是自己拼接的条件,过滤数据查找数据的时候总记录修改了吗

改了 每次都要重新取一次count值
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-2 14:30:28 | 显示全部楼层
java中的count记录输出看看正确吗
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

29

主题

110

帖子

196

积分

初级会员

Rank: 2

积分
196
QQ
 楼主| 发表于 2017-11-2 15:09:03 | 显示全部楼层
jishuang 发表于 2017-11-2 14:30
java中的count记录输出看看正确吗

输出了 没有问题  页面的记录数就出现问题了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-2 15:20:51 | 显示全部楼层
java代码发一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

29

主题

110

帖子

196

积分

初级会员

Rank: 2

积分
196
QQ
 楼主| 发表于 2017-11-2 15:58:08 | 显示全部楼层
jishuang 发表于 2017-11-2 15:20
java代码发一下看看

String KSqlWord="SELECT sxr,sxr.id

,sxr.innerid,sxr.name

,sxr.type,sxr.length,sxr.startLat," +
                                "sxr.startLng,sxr.startStakeNum,sxr.endStakeNum,sxr.endLat,sxr.endLng,sxr.tax," +
                                "sxr.taxRate,sxr.sectionOwnerId,sxr.chargeType,sxr.tollRoads,sxr.builtTime," +
                                "sxr.startTime,sxr.endTime FROM sx_roadinfo sxr Where "+where+" Order by sxr.id

desc limit "+offset+","+limit+"";
                 System.out.println(KSqlWord);
             Table table = KSQL.select(KSqlWord, null, "/sx/roadinfo/data", null);
             table.getProperties().put(Table.PROP_NAME_ROWID, "sxr");
             
             String CountKSQL="Select max(a.id) as id, max(a.name

) as name ,Count(a) as cnt From sx_roadinfo a where "+where+"";
             System.out.println(CountKSQL);
             Table countTable = KSQL.select(CountKSQL, null, "/sx/roadinfo/data", null);
            
             Integer num = countTable.iterator().next().getInteger("cnt");
             System.out.println(num);
             table.getProperties().put(Table.PROP_DB_COUNT, num);
             
                 System.out.println("执行findByIdandName");
                 return table;
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-2 16:35:32 | 显示全部楼层
你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-6 14:13:37 | 显示全部楼层
本地测试没问题,设置的条件加载数据后分页工具条会改变数据
action1.png


action.png


model的构造函数中定义变量this.filterStr
  1.         var Model = function(){
  2.                 this.callParent();
  3.                 this.filterStr = "";
  4.         };
复制代码




smartFilter的onFilter中如下:
  1.         Model.prototype.smartFilter1Filter = function(event) {
  2.                 this.filterStr = event.source.searchText.get();
  3.                 var data = event.source.getFilterData();
  4.                 data.refreshData();
  5.         };
复制代码
data的onCustomRefresh中实现如下:
  1.         Model.prototype.data1CustomRefresh = function(event){
  2.         var data1 = this.comp("data1");//获取data
  3.                 var grid1 = this.comp("grid1");//获取展现数据的grid组件
  4.                 //勾选action参数,给limit和offset参数传参
  5.                 var param = new biz.Request.ActionParam();
  6.                 var limit = data1.limit;//获取data的limit值
  7.                 var offset = data1.getOffset();//获取data当前的offset值;               
  8.                 param.setInteger("limit", limit);
  9.                 param.setInteger("offset", offset);
  10.                 param.setString("filterStr",this.filterStr);
  11.                 biz.Request.sendBizRequest({
  12.                         "context" : this.getContext(),
  13.                         "action" : "loadMainAction",
  14.                         "parameters" : param,
  15.                         "callback" : function(callbackData) {
  16.                                 callbackData.ignoreError = false;
  17.                                 if (callbackData.state) {
  18.                                         data1.loadData(callbackData.response, false);//把返回的数据给data
  19.                                         grid1.refresh();//刺激grid显示数据
  20.                                 }
  21.                         }
  22.                 });
  23.         };
复制代码



action的java代码
  1.         public static Table loadMain(Integer limit,Integer offset,String filterStr) {
  2.                
  3.                 //设置where条件
  4.                 String whereStr = "where 1=1";
  5.                 if(!filterStr.isEmpty()){
  6.                        
  7.                         whereStr += "and zsj.fName like concat('%','"+filterStr+"','%')";
  8.                 }
  9.                
  10.                 // 根据传的limit和offset控制查的数据记录数
  11.                 String ksql = "select zsj,zsj.fName,zsj.fCode from AP_ZHJ zsj "+whereStr+"limit " + Integer.toString(offset) + "," + Integer.toString(limit);
  12.                 Table table = KSQL.select(ksql, null, "/appdemo/test/data", null);
  13.                 // 设置主键
  14.                 table.getProperties().put(Table.PROP_NAME_ROWID, "zsj");

  15.                 // 设置总记录数 , 计算分页
  16.                 Table tCount = KSQL.select("select count(zsj) as cnt from AP_ZHJ zsj "+whereStr, null, "/appdemo/test/data", null);
  17.                 BigDecimal num = tCount.iterator().next().getDecimal("cnt");
  18.                 table.getProperties().put(Table.PROP_DB_COUNT, num);

  19.                 return table;

  20.         }
复制代码




远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

29

主题

110

帖子

196

积分

初级会员

Rank: 2

积分
196
QQ
 楼主| 发表于 2017-11-7 11:03:00 | 显示全部楼层
jishuang 发表于 2017-11-6 14:13
本地测试没问题,设置的条件加载数据后分页工具条会改变数据

非常感谢 结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-28 06:14 , Processed in 0.062619 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表