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

QQ登录

只需一步,快速开始

查看: 4429|回复: 13

[结贴] 关于多表查询

[复制链接]

35

主题

142

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
QQ
发表于 2016-12-12 12:03:25 | 显示全部楼层 |阅读模式
在list展现一个留言列表,绑定baasData,数据展现组件对应的数据表A里特定字段,已经实现。现在想要增加留言人的头像,要从另外数据表B获得留言人的头像信息,并在image组件中展现。表A中有字段a对应留言人,表B中有字段b对应留言人,字段c对应头像url。
解决思路是从表A获取数据时,把对应的表B的字段c的值加载到baasData中,在list中展现,思路是否可行,具体怎样实现?
发表于 2016-12-12 14:46:28 | 显示全部楼层
如果baasData组件中的留言 对应B 表中的数据是一对一的关系,当然可以添加个计算列实现!
但是如果是一对多的关系,建议还是通过list嵌套实现吧!

http://docs.wex5.com/wex5-ui-question-list-2005/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

35

主题

142

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
QQ
 楼主| 发表于 2016-12-12 15:15:53 | 显示全部楼层
用计算列实现,具体操作能介绍一下吗?
回复 支持 反对

使用道具 举报

37

主题

203

帖子

331

积分

中级会员

Rank: 3Rank: 3

积分
331
QQ
发表于 2016-12-12 15:38:02 | 显示全部楼层
楼主,你这个好像跟我之前的问题大致应该差不多
http://bbs.wex5.com/forum.php?mo ... page=1#pid165333245

在image的属性:bind-attr-src定义一个方法
在方法里做你的逻辑判断,也就是取得表A的需对应表B的字段去做判断,返回值就是图片的路径地址
这样应该是可以的
回复 支持 反对

使用道具 举报

发表于 2016-12-12 16:17:57 | 显示全部楼层
ffqfb_wzy 发表于 2016-12-12 15:15
用计算列实现,具体操作能介绍一下吗?

4楼的方法不错!图片绑定一个js方法!返回真实的图片 url
计算列,就是在data组件上右键,添加计算关系,
然后再右键编辑规则,计算规则中绑定一个js方法,获取到图片的url

和4楼的用法原理上一样的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

35

主题

142

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
QQ
 楼主| 发表于 2016-12-12 16:46:59 | 显示全部楼层
为什么返回的都是userData的第一条记录的字段值
3.png
2.png
1.png
回复 支持 反对

使用道具 举报

35

主题

142

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
QQ
 楼主| 发表于 2016-12-12 16:51:00 | 显示全部楼层
第一条返回是正确的,后面为什么没有根据条件过滤,而是返回和第一条相同的值
回复 支持 反对

使用道具 举报

发表于 2016-12-12 17:40:17 | 显示全部楼层
ffqfb_wzy 发表于 2016-12-12 16:51
第一条返回是正确的,后面为什么没有根据条件过滤,而是返回和第一条相同的值 ...

不能在动态绑定的js中调用 data.refreshData() 方法!否则data又刷新了!
刷新后默认切换到了第一行!所以data.val('userImg') 获取的就是第一行的值
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

35

主题

142

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
QQ
 楼主| 发表于 2016-12-12 18:09:05 | 显示全部楼层
本帖最后由 ffqfb_wzy 于 2016-12-12 18:17 编辑

请教怎样做才能定位到符合条件的记录,尝试用userData.find(["id"],[row.val("phone")]);也不行,输出的都是第一行,最好能给出具体代码

Model.prototype.transUserUrl = function(row) {
                //debugger;
                alert("当前行号码是:"+row.val('phone'));  //当前号码输出正确
                var userData=this.comp("userData");
                var rows=userData.find(["id"],[row.val("phone")]);
                var url=userData.val("userImg");
                return url;
        };

回复 支持 反对

使用道具 举报

发表于 2016-12-12 18:12:49 | 显示全部楼层
ffqfb_wzy 发表于 2016-12-12 18:09
请教怎样做才能定位到符合条件的记录,尝试用userData.find(["id"],[row.val("phone")]);也不行,输出的都 ...

自己调试看看
row.val("phone") 的值是多少??

find方法获取的值应该是符合条件的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 19:22 , Processed in 0.066555 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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