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

QQ登录

只需一步,快速开始

查看: 2164|回复: 8

[处理中4] scrollView 数据上滑加载问题

[复制链接]

36

主题

114

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2016-11-26 17:05:46 | 显示全部楼层 |阅读模式
ui页面里边用data组件,baassend加载后台java,自己写方法从数据库中读取数据拼成json返回给data加载。由于数据量比较大所以没有全部取出。这种情况下如何用scrollView上滑控制加载新数据。
后台写的代码:
  1. DBHelper helper = new DBHelper();
  2. String sql = "SELECT top 10 * FROM news";
  3. DataTable tb = helper.GetDataTable(sql);
  4. String jsonString = tb.toJsonString();
  5. JSONArray array =JSONArray.parseArray(jsonString);
  6. JSONObject obj = new JSONObject();
  7. obj.put("rows",array);
  8. return obj;
复制代码
前台:
  1. "url" : "/wqcy/wqcynew",
  2. "action" : "getNewsData",
  3. "async" : false,
  4. "params" : {},
  5. "success" : function(data) {
  6. event.source.loadData(data);}
复制代码



64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-11-26 17:21:27 | 显示全部楼层
你可以使用sqlQuery这个预定义action,设置sql参数来完成所谓的自定义sql查询过程,推荐这个:http://bbs.wex5.com/forum.php?mo ... id=95857&extra=
完全兼容官方给的action,功能更强大。
回复 支持 反对

使用道具 举报

发表于 2016-11-28 11:32:04 | 显示全部楼层
qldsrx 发表于 2016-11-26 17:21
你可以使用sqlQuery这个预定义action,设置sql参数来完成所谓的自定义sql查询过程,推荐这个:http://bbs.w ...

分页的做法,请参考:http://docs.wex5.com/wex5-ui-question-list-2028/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

114

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
 楼主| 发表于 2016-11-28 14:45:39 | 显示全部楼层
liangyongfei 发表于 2016-11-28 11:32
分页的做法,请参考:http://docs.wex5.com/wex5-ui-question-list-2028/

不好意思,我想问一下,后台数据需要全部取出加载,也就是不写top 10。然后再赋个count值实现么
回复 支持 反对

使用道具 举报

发表于 2016-11-28 16:08:32 | 显示全部楼层
lch245298 发表于 2016-11-28 14:45
不好意思,我想问一下,后台数据需要全部取出加载,也就是不写top 10。然后再赋个count值实现么 ...

如果数据全部一次性加载出来!就不用分页了!
只需要list组件中 limit 属性 设置为每次渲染的个数即可!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

114

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
 楼主| 发表于 2016-11-28 16:18:25 | 显示全部楼层
liangyongfei 发表于 2016-11-28 16:08
如果数据全部一次性加载出来!就不用分页了!
只需要list组件中 limit 属性 设置为每次渲染的个数即可! ...

我是自己写的json,取的top前多少条。设置了cdata组件和list组件的limit属性都是5,但还是取多少数据就加载多少数据,也不会新增
回复 支持 反对

使用道具 举报

36

主题

114

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
 楼主| 发表于 2016-11-28 16:22:27 | 显示全部楼层
liangyongfei 发表于 2016-11-28 16:08
如果数据全部一次性加载出来!就不用分页了!
只需要list组件中 limit 属性 设置为每次渲染的个数即可! ...

刚才试了一下,cdata组件limit属性设置为-1,list组件的limit设置为5.后台java文件sql语句取了20条,然后ui运行实现下拉刷新效果了。但还是总数20条。我的意思是数据库里边的数据一共有上千条。加载的多了以后就会报错
回复 支持 反对

使用道具 举报

发表于 2016-11-28 17:25:46 | 显示全部楼层
lch245298 发表于 2016-11-28 16:22
刚才试了一下,cdata组件limit属性设置为-1,list组件的limit设置为5.后台java文件sql语句取了20条,然后 ...

数据库里边的数据一共有上千条
,那当然就要使用分页来实现了!

需要设置总行数,做法看下:
http://docs.wex5.com/wex5-ui-question-list-2028/

使用data组件需要自己接管onCustomRefresh 事件!每次请求后端获取相应页数的数据!

请问你是这样做的吗??
如果数据太多了!loadData方法的时候设置覆盖以前的数据,不要增量加载就可以!
详情请看API
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-11-29 13:48:40 | 显示全部楼层
直接参考sqlQuery的源码不就好了吗?sqlQuery完美实现了分页过程,而且也可以直接通过参数配置法,不写一行java代码实现带分页的自定义查询,何乐而不为?另外sqlQuery的接口完美兼容baasData组件,其实就是从默认的那个Query衍生出来的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 15:23 , Processed in 0.063790 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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