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

QQ登录

只需一步,快速开始

查看: 2378|回复: 9

[结贴] bassData根据ID取另一个bassData的匹配的值

[复制链接]

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
发表于 2018-8-1 12:02:34 | 显示全部楼层 |阅读模式
本帖最后由 bh_chen 于 2018-8-1 15:33 编辑

grid表格中,MainbassData中有一个user字段记录的是用户ID,现在要显示的是用户名,怎么根据用户ID在userbassData中取出对应的用户名.

13

主题

52

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
QQ
发表于 2018-8-1 15:13:18 | 显示全部楼层
首先在userbassData中肯定要有用户ID这个字段,以下几种方法应该能够满足你的需求
this.comp("data").getValueByID(col,rowID);
this.comp("data").find();
this.comp("data").each()
回复 支持 反对

使用道具 举报

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2018-8-1 15:36:58 | 显示全部楼层
zhb2034 发表于 2018-8-1 15:13
首先在userbassData中肯定要有用户ID这个字段,以下几种方法应该能够满足你的需求
this.comp("data").getVa ...

是在grid表格中显示,有很多数据,所以你说的方法不适合。
有没有在bassData中就完成的方法
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2018-8-1 16:04:35 | 显示全部楼层
如果是grid中显示,应该是在定义sql语句的是关联查找,通过用户ID关联查询出其他表中的名字,然后在grid中显示这个名字

如果只是前端获取,可以获取到用户ID,如果用户ID对应的是另个baasData的主键值可以直接用data的getValueByID方法获取名字的值
如果用户ID不是另一个baasData的主键,需要另一个baasData调用find方法查找用户ID是这个值的行,在查找的行中获取值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2018-8-3 14:44:50 | 显示全部楼层
jishuang 发表于 2018-8-1 16:04
如果是grid中显示,应该是在定义sql语句的是关联查找,通过用户ID关联查询出其他表中的名字,然后在grid中 ...

1、sql 语句怎么定义,是新建一个 PHP 文件来定义,还是在服务文件的 action 中定义?

2、我在前端已经解决,是在 CellRender  使用 event.html,这种做法是否有问题?

3、前端 grid 中有些列的数据是可以编辑的,最近更新的列是 disable。但是更新的数据保存后,时间的数据也要同时更新。我这边尝试使用 onValueChange 方法,会死循环。我应该怎么做,有什么好建议?
  1. Model.prototype.MainDataValueChange = function(event){
  2.           var data = this.comp('MainData');
  3.           data.setValue('LAST_UPDATED_DATE',  new Date());
  4.         
  5.         };
复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2018-8-3 16:05:22 | 显示全部楼层
1.baasData的action不是关联的有action吗?action上就有sql语句啊
2.可以
3.在data保存前的时候获取data中修改的行,去修改数据,data上提供有获取改变行的API
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2018-8-3 16:27:43 | 显示全部楼层
jishuang 发表于 2018-8-3 16:05
1.baasData的action不是关联的有action吗?action上就有sql语句啊
2.可以
3.在data保存前的时候获取data中 ...

1、data 保存前用的是哪个方法,是 onBeforeData 吗?

2、获取改变行的API是哪个。是 getRowState 吗?

3、同时修改好几条数据也是一样吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2018-8-6 14:21:16 | 显示全部楼层
1.onBeforeSave,data上有onBeforeData事件吗?
2.
data.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2018-8-6 14:21:31 | 显示全部楼层
本帖最后由 bh_chen 于 2018-8-6 14:31 编辑
bh_chen 发表于 2018-8-3 16:27
1、data 保存前用的是哪个方法,是 onBeforeData 吗?

2、获取改变行的API是哪个。是 getRowState 吗?

      分享一下解决方案:
// 保存前更新修改数据的日期
        Model.prototype.CustomerDataBeforeSave = function(event){
                var data = this.comp('CustomerData');

                data.eachAll(function(param) {
                        var currentRow = param.row;
                        var state = data.getRowState(currentRow);
                        
                        if (state === 'edit') {
                                data.setValue('LAST_UPDATED_DATE', new Date(), currentRow);
                        }
                });
        };



回复 支持 反对

使用道具 举报

9

主题

32

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2018-8-6 14:33:19 | 显示全部楼层
jishuang 发表于 2018-8-6 14:21
1.onBeforeSave,data上有onBeforeData事件吗?
2.

// 保存前更新修改数据的日期
        Model.prototype.CustomerDataBeforeSave = function(event){
                var data = this.comp('CustomerData');

                data.eachAll(function(param) {
                        var currentRow = param.row;
                        var state = data.getRowState(currentRow);
                       
                        if (state === 'edit') {
                                data.setValue('LAST_UPDATED_DATE', new Date(), currentRow);
                        }
                });
        };


我也给出了一个方案,你看看跟你给的方案哪个比较好。
回复顺便结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 06:29 , Processed in 0.056854 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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