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

QQ登录

只需一步,快速开始

查看: 2354|回复: 8

[处理中2] 设置baasData控件过滤条件后还是显示数据的问题

[复制链接]

13

主题

37

帖子

171

积分

初级会员

Rank: 2

积分
171
QQ
发表于 2016-10-31 11:12:34 | 显示全部楼层 |阅读模式
本帖最后由 zhegexiaji 于 2016-10-31 11:19 编辑

var me = this.comp("bdqstype");
me.setFilter("teachingsx", "left(tno_cno,7)='" + localStorage.getItem("jgh") + "'");
me.refreshData();
alert(me.count());
通过该过滤条件,明明查询得到的记录数为0条,但前台listtable组件还是显示全部的数据,这是怎么回事?若过滤查询后得到的数据有一条以上,则前台listtable组件显示的数据又正常(只显示过滤后的数据)。

0

主题

113

帖子

36

积分

新手上路

Rank: 1

积分
36
QQ
发表于 2016-10-31 17:03:15 | 显示全部楼层
第二行,增加me.clear() 试一下
回复 支持 反对

使用道具 举报

13

主题

37

帖子

171

积分

初级会员

Rank: 2

积分
171
QQ
 楼主| 发表于 2016-10-31 17:08:05 | 显示全部楼层
谢谢!之前我就试过,不行。
回复 支持 反对

使用道具 举报

13

主题

313

帖子

399

积分

中级会员

Rank: 3Rank: 3

积分
399
QQ
发表于 2016-10-31 18:26:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

113

帖子

36

积分

新手上路

Rank: 1

积分
36
QQ
发表于 2016-10-31 18:32:19 | 显示全部楼层
Parameters
Object
[url=]options[/url]刷新参数
参数格式:
        {                "async" : {boolean} - 异步执行,默认:false,                "append" : {boolean} - 增量刷新,不清除原有数据,默认:false,                         }

append 设置为true 试一下
回复 支持 反对

使用道具 举报

13

主题

37

帖子

171

积分

初级会员

Rank: 2

积分
171
QQ
 楼主| 发表于 2016-10-31 21:10:15 | 显示全部楼层
Model.prototype.modelLoad = function(event) {
                var selteaching = this.comp("bdteaching");
                selteaching.setFilter("xsteachingcourse", "tno='" + localStorage.getItem("jgh") + "'");
                selteaching.refreshData();
                var me = this.comp("bdqstype");
                me.setFilter("teachingsx", "left(tno_cno,7)='" + localStorage.getItem("jgh") + "'");
                me.refreshData({
                        "async" : false,
                        "append" : true
                });
                alert(me.count());
        };

每次过滤筛选出的记录数显示的数目是正确的,但控件却还是显示出了所有的记录。
回复 支持 反对

使用道具 举报

13

主题

37

帖子

171

积分

初级会员

Rank: 2

积分
171
QQ
 楼主| 发表于 2016-10-31 21:26:14 | 显示全部楼层
本帖最后由 zhegexiaji 于 2016-10-31 21:36 编辑

问题解决,代码如下:
Model.prototype.modelLoad = function(event) {
                var selteaching = this.comp("bdteaching");
                selteaching.setFilter("xsteachingcourse", "tno='" + localStorage.getItem("jgh") + "'");
                selteaching.refreshData();
                var me = this.comp("bdqstype");
                me.setFilter("teachingsx", "left(tno_cno,7)='" + localStorage.getItem("jgh") + "'");
                me.refreshData({
                        "async" : true
                });
        };
但是仍有点不明白,("async" : true)不是异步执行吗?怎么就可以了?为什么同步执行就不行呢?莫非是还未等到服务返回过滤数据,前台就开始显示过滤之前的数据了?如果是这样就更应该是同步才对呀?!
谢谢楼上的帮我出主意,让我总算是稀里糊涂的乱改乱试蒙对了!
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-10-31 22:20:06 | 显示全部楼层
为啥你的代码是放在modelLoad里执行的?如果你的代码是放在按钮里点击后执行的,那你同步执行肯定100%不会出问题,你可以试试。
回复 支持 反对

使用道具 举报

13

主题

37

帖子

171

积分

初级会员

Rank: 2

积分
171
QQ
 楼主| 发表于 2016-10-31 22:27:23 | 显示全部楼层
本帖最后由 zhegexiaji 于 2016-10-31 22:34 编辑

这是因为该页面是操作用户登录后跳转过来的,根据登录的不同用户,前台界面显示不同的内容。不是属于登录用户操作的内容一开始就不应该将数据载入到前台,所以baasdata控件的autoLoad设置为false,当执行过滤后数据才从服务端载入客户端。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 07:35 , Processed in 0.052874 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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