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

QQ登录

只需一步,快速开始

查看: 8440|回复: 10

[结贴] onBeforeSave函数里操作数据出错

[复制链接]

88

主题

251

帖子

689

积分

高级会员

Rank: 4

积分
689
QQ
发表于 2017-12-3 20:58:27 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 zzqqstc 于 2017-12-3 21:02 编辑

在mainData的onBeforeSave函数里操作其他的bizData        Model.prototype.mainDataBeforeSave = function(event){
                // update driver status
               this.comp("driverList").getCurrentRow().val("fDStatus", '不可用');
        };


但是只要操作就会报错:
data保存失败!!,Cannot read property 'val' of undefined
编码:JUSTEP231020
显示详细


driverList这个bizData在mainActivity.w中是存在的,fDStatus也没有写错。
怎么就不能 .val()?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-12-4 09:38:33 | 显示全部楼层
deubgger调试看看 this.comp("driverList").getCurrentRow()是什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

88

主题

251

帖子

689

积分

高级会员

Rank: 4

积分
689
QQ
 楼主| 发表于 2017-12-4 15:44:01 | 显示全部楼层
jishuang 发表于 2017-12-4 09:38
deubgger调试看看 this.comp("driverList").getCurrentRow()是什么?

明白了,driverList绑定的前端select控件的问题,没有选中,所以报错。
但是我换了一个vehicleList, 做了选中操作,然后在savebefore中改了数据并保存。
前端没报错,后端也没报错,流程也正常到了下一阶段。

但是,数据没有写回到数据库。
                this.comp("vehicleList").getCurrentRow().val("fVStatus", "不可用") ;
                this.comp("vehicleList").saveData();

这个情况应该怎么查?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-12-4 16:22:36 | 显示全部楼层
保存前不需要再调用 this.comp("vehicleList").saveData();


data给字段赋值直接用setValue就可以
确认vehicleList是data的xid吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

88

主题

251

帖子

689

积分

高级会员

Rank: 4

积分
689
QQ
 楼主| 发表于 2017-12-4 22:51:06 | 显示全部楼层
本帖最后由 zzqqstc 于 2017-12-4 23:02 编辑
jishuang 发表于 2017-12-4 16:22
保存前不需要再调用 this.comp("vehicleList").saveData();

我是在mainData的onBeforeSave函数中调用this.comp("vehicleList").saveData();
vehicleList是另一个BizData,然道不需要调用saveData么?确实是data的xid


改成了.setValue():
                var row = this.comp("vehicleList").getCurrentRow();
                row.setValue("fVStatus", "不可用");

                this.comp("vehicleList").saveData();


还是报错:
data保存失败!!,row.setValue is not a function
编码:JUSTEP231020
显示详细

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-12-5 09:33:41 | 显示全部楼层
data的setValue不是row的setValue
var data = this.comp("data的xid");
data.setValue("fVStatus", "不可用");
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

88

主题

251

帖子

689

积分

高级会员

Rank: 4

积分
689
QQ
 楼主| 发表于 2017-12-5 12:46:34 | 显示全部楼层
jishuang 发表于 2017-12-5 09:33
data的setValue不是row的setValue
var data = this.comp("data的xid");
data.setValue("fVStatus", "不可用 ...

现在代码是这样,写入再读,没有报错,而且数据也是对的。
但是,数据没有写进数据库。
                var data = this.comp("vehicleList");
                data.setValue("fVStatus","不可用");
                alert(data.getValue("fVStatus"));

                data.saveData();
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-12-5 13:26:16 | 显示全部楼层
data.getCurrentRowID()打出来看看
并把数据库中主键值为这个id的数据查出来看看
在data的保存事件中加alert提示看看执行了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

88

主题

251

帖子

689

积分

高级会员

Rank: 4

积分
689
QQ
 楼主| 发表于 2017-12-5 14:14:28 | 显示全部楼层
jishuang 发表于 2017-12-5 09:33
data的setValue不是row的setValue
var data = this.comp("data的xid");
data.setValue("fVStatus", "不可用 ...

弄清楚了,解决了。
还有一个问题,调用mainData.saveData, 那么在beforeSave和afterSave中的数据修改并保存,是否处于同一事务?
即这三个函数中有任意一个saveData失败,所有的bizData都会回滚?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-12-5 15:51:18 | 显示全部楼层
是同一个事务
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 04:51 , Processed in 0.061239 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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