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

QQ登录

只需一步,快速开始

查看: 1689|回复: 8

[结贴] WindowDialog接收参数刷新data组件

[复制链接]

9

主题

17

帖子

65

积分

初级会员

Rank: 2

积分
65
QQ
发表于 2017-3-10 15:52:40 | 显示全部楼层 |阅读模式
在弹出的页面中:
Model.prototype.cardListCustomRefresh = function(event){
//这里调用restful服务,可以获取数据,list列表显示数据
}
现在改了下,接收参数,如何更新list的数据?
        var id;
        Model.prototype.windowReceiver1Receive = function(event){
                //接收参数
                id= event.data.id;
                alert("id");
        };
如何根据id参数,触发data组件刷新?
this.comp('cardList').refreshData();  这样写也无效。。。
发表于 2017-3-10 15:57:25 | 显示全部楼层
请问是baasData 吗??
data.setFilter('filter1',"id='id的值'");
data.refreshData()

这就是设置过滤条件并刷新的代码!!

如果是普通的cData组件! 就需要自己讲参数传递后台,自定义sql进行刷新了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

17

帖子

65

积分

初级会员

Rank: 2

积分
65
QQ
 楼主| 发表于 2017-3-10 16:15:54 | 显示全部楼层
liangyongfei 发表于 2017-3-10 15:57
请问是baasData 吗??
data.setFilter('filter1',"id='id的值'");
data.refreshData()

普通data组件,所有方法都写好。

现在得到的效果是打开页面list没有数据,手动下拉刷新才能获取数据
Model.prototype.windowReceiver1Receive是在Model.prototype.cardListCustomRefresh后执行的
回复 支持 反对

使用道具 举报

发表于 2017-3-10 16:20:20 | 显示全部楼层
xinghe7134 发表于 2017-3-10 16:15
普通data组件,所有方法都写好。

现在得到的效果是打开页面list没有数据,手动下拉刷新才能获取数据

list只管显示数据!
我的意思是在详细页过滤查询出当前行 所有的数据!
既然使用data组件!所有方法都是你自己实现的!那么过滤查询又为何不会写!和全部查询是一样的!就是多一个where条件而已!

详细页查询到数据后再加到list的data组件中去!list只管新增一行!不必重新刷新数据
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

17

帖子

65

积分

初级会员

Rank: 2

积分
65
QQ
 楼主| 发表于 2017-3-10 16:32:26 | 显示全部楼层
都实现了,现在的问题在于windowdialog的接收参数上。
cardListCustomRefresh根据父页面的参数去查询数据,但是我这样写cardListCustomRefresh执行之后才能接收到参数,所以导致手动刷新下数据一切正常,因为这是才获取到父页的参数,
回复 支持 反对

使用道具 举报

发表于 2017-3-10 16:45:43 | 显示全部楼层
xinghe7134 发表于 2017-3-10 16:32
都实现了,现在的问题在于windowdialog的接收参数上。
cardListCustomRefresh根据父页面的参数去查询数据, ...

data组件的autoLoad设置为false  就不会自动刷新了!
完全通过js控制data组件的刷新!
data.refreshData()
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

17

帖子

65

积分

初级会员

Rank: 2

积分
65
QQ
 楼主| 发表于 2017-3-10 16:50:28 | 显示全部楼层
var Model = function(){
                this.callParent();
                this.id= "";//这是参数
        };
Model.prototype.windowReceiver1Receive = function(event){
                //接收参数
                this.id= this.params.id;
                alert(this.id);
        };
Model.prototype.cardListCustomRefresh = function(event){
这里调用后台服务,传递参数是this.id。但是页面加载后,第一次执行时没有this.id的,后面手动刷新一下就好了
}
能不能在这里手动触发data组件的刷新?
Model.prototype.windowReceiver1Receive = function(event){
//这里接收到参数,收到触犯data组件刷新,该如何写 ?
}
回复 支持 反对

使用道具 举报

发表于 2017-3-10 16:53:30 | 显示全部楼层
xinghe7134 发表于 2017-3-10 16:50
var Model = function(){
                this.callParent();
                this.id= "";//这是参数

可以啊!在你的代码中直接获取data组件对象然后
data.refreshData()
就可以刷新了!你动手试试就知道了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

17

帖子

65

积分

初级会员

Rank: 2

积分
65
QQ
 楼主| 发表于 2017-3-10 16:58:55 | 显示全部楼层
liangyongfei 发表于 2017-3-10 16:45
data组件的autoLoad设置为false  就不会自动刷新了!
完全通过js控制data组件的刷新!
data.refreshData( ...

原来要关闭autoLoad,感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 13:36 , Processed in 0.056951 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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