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

QQ登录

只需一步,快速开始

查看: 2970|回复: 6

关于多表查询与list组件的click回调问题[请结贴]

  [复制链接]

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2016-10-13 03:12:48 | 显示全部楼层 |阅读模式
本帖最后由 deltaboy 于 2016-10-16 23:08 编辑

首先,问题涉及两个表,项目表“project”和任务表“mission”

mission中【projectid】对应project中的【id】,mission中【userid】存储用户id,project中【name】储存项目名称。

我做一个任务列表页来显示当前用户名下的所有任务,目前已经做好的界面:
001.png

由于还不会在wex5中弄多表查询,所以目前的做法是用嵌套列表,外list绑定mission的baasdata,内list绑定project的baasdata,内list的filter设置为 $row.val("id") == val("projectid")。
在外list配置了click回调,获取mission的【id】即任务ID,进行传参:

Model.prototype.list1Click = function(event){
  var rwid = this.comp("rwData").getValue("id");
  this.comp("windowDialog").open({"src":require.toUrl("./schedule.w"),"data":{"rwid":rwid}});

目前的问题是:点击外list的其他范围均正常获取到相应的rwid值。而点击到蓝色项目名称时,无法正确获取到相应的rwid值,总是“1”。
有没有什么方法能避免这个问题???

其实,我也觉得应该把项目名称放到外list,把任务信息放到内list,这样还不会有重复的项目名称,在内list设置click回调也不会有上面的问题。可是项目表没有用户id信息,我不希望将非本用户的项目暴露出来。如何是好?在外list的li的bind-visible上想办法?可即使这样能搞定,其实后台数据还是暴露到了前端的呀...

能够多表查询那就好说了...请教一下,wex5的baasdata想要多表查询,是不是必须自己写自定义queryaction,然后自己写sql语句?



发表于 2016-10-13 10:50:50 | 显示全部楼层
多表关联查询,请使用自定义action  自定义sql 来实现,可以参考:http://docs.wex5.com/wex5-server-question-list-2012/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
 楼主| 发表于 2016-10-14 22:30:04 | 显示全部楼层
看了demo,action里是添加一个sql设置行,然后写filter传参就可以了,挺好!就是别名什么的看了半天,这个例子展现得很丰富 0.0
回复 支持 反对

使用道具 举报

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
 楼主| 发表于 2016-10-16 17:23:52 | 显示全部楼层
liangyongfei 发表于 2016-10-13 10:50
多表关联查询,请使用自定义action  自定义sql 来实现,可以参考:http://docs.wex5.com/wex5-server-quest ...

研究了com.justep.baas.action.CRUD.sqlQuery,能够在多表查询了,可是好像只能拿到一个表的返回数据

比如:在action的sqlQuery的sql参数中填 SELECT p.id, p.name, m.id, m.content, m.projectid, m.userid FROM project as p JOIN mission as m ON p.id = m.projectid WHERE m.userid =:userid
countSql参数中填 SELECT COUNT(m.id) FROM mission as m WHERE m.userid =:userid

前台怎么拿p.name?
回复 支持 反对

使用道具 举报

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
 楼主| 发表于 2016-10-16 23:05:04 | 显示全部楼层
本帖最后由 deltaboy 于 2016-10-21 16:38 编辑
deltaboy 发表于 2016-10-16 17:23
研究了com.justep.baas.action.CRUD.sqlQuery,能够在多表查询了,可是好像只能拿到一个表的返回数据

比 ...

X5交流民间第一群 (30057529)中 南宁-biyao (30722212)解答了我的问题...
原来我只差最后一步
就在设置列界面中新增计算列...我之前试来试去都没试用计算列...

比如我想要拿project.name,只需要在新增计算列名称中填写name即可。

结贴!
回复 支持 反对

使用道具 举报

33

主题

213

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
发表于 2016-10-18 16:54:13 | 显示全部楼层
deltaboy 发表于 2016-10-16 23:05
X5交流民间第一群 (30057529)中 南京-biyao (30722212)解答了我的问题...
原来我只差最后一步
就在设置列 ...

我是南宁的
回复 支持 反对

使用道具 举报

8

主题

131

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
 楼主| 发表于 2016-10-21 16:39:10 | 显示全部楼层

0.0看花了,已更正~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 04:58 , Processed in 0.091025 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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