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

QQ登录

只需一步,快速开始

查看: 5152|回复: 8

[分享] bizData 保存前怎么判断当前数据修改了哪些列

  [复制链接]

114

主题

479

帖子

1356

积分

金牌会员

Rank: 6Rank: 6

积分
1356
QQ
发表于 2014-8-30 14:06:33 | 显示全部楼层 |阅读模式
版本: X5.2.6 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 ssoqyhm 于 2014-9-1 22:16 编辑

如题!

总结下两个方法:
JS层:
        var  data= justep.xbl('detailData');
        var json=justep.xbl('detailData').getJson().rows[0];        
        var strJson= JSON.stringify(json);
        var obj = JSON.parse(strJson);
        var oj=eval('('+strJson+')');
        for(var key in json){ //第一层循环取到各个list
                var changed= json[key].changed;
        }


java层:
Iterator<Row> rows=table.iterator();
row = rows.next();
row.isModified(column) 来判断是否变更

可以结贴了!!!

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

发表于 2014-8-30 14:12:09 | 显示全部楼层
需要记录上一次的值,与保存时的值进行比较,不相等的说明已经修改过了。
回复 支持 反对

使用道具 举报

114

主题

479

帖子

1356

积分

金牌会员

Rank: 6Rank: 6

积分
1356
QQ
 楼主| 发表于 2014-8-30 14:14:27 | 显示全部楼层
lanware_smf 发表于 2014-8-30 14:12
需要记录上一次的值,与保存时的值进行比较,不相等的说明已经修改过了。 ...

应该有其他方法吧,bizData的保存按钮 如果有改就可以按,没改就不能按,应该有自带的属性,。在java 的代码中转成Table 后就很好判断了。
我是想在JS层做判断
回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
发表于 2014-8-30 14:19:27 | 显示全部楼层
在changeon 事件中写代码,自然会取当时发生变更的列,不需要在保存的时候一起对比啊。那样会使简单的事情变复杂吧。
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-8-30 14:37:19 | 显示全部楼层
public justep.XData.STATE getState(string rowID)
获取行id对应行的状态

比如:var data = justep.xbl("data_id");
var rowid = data.getCurrentID();
status = data.getState(rowid); //获取当前行状态
包括:NEW、DELETE、EDIT、NONE
QQ:179785966
回复 支持 反对

使用道具 举报

114

主题

479

帖子

1356

积分

金牌会员

Rank: 6Rank: 6

积分
1356
QQ
 楼主| 发表于 2014-8-30 14:51:51 | 显示全部楼层
yinlun 发表于 2014-8-30 14:37
public justep.XData.STATE getState(string rowID)
获取行id对应行的状态

我想要精确到哪个列 ,不是一整条记录
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-8-30 15:02:13 | 显示全部楼层
ssoqyhm 发表于 2014-8-30 14:51
我想要精确到哪个列 ,不是一整条记录

定义个全局变量,在onValueChanged事件里,把修改过的列名,都存到全局变量里,用逗号隔开
QQ:179785966
回复 支持 反对

使用道具 举报

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-8-31 10:47:02 | 显示全部楼层
ssoqyhm 发表于 2014-8-30 14:51
我想要精确到哪个列 ,不是一整条记录

你精确到这一列,最终想要干什么呢?是不是做修改日志,对每个字段修改的内容进行记录?
可以在data的保存前事件中获取相关的值
然后调用平台提供的添加日志的api去存储相关的日志信息
111.png
向前进,向前进,我们……
回复 支持 反对

使用道具 举报

4

主题

1579

帖子

2706

积分

内部用户

积分
2706
发表于 2014-8-31 18:19:06 | 显示全部楼层
前端获取方式:
BizData提供了api,getChangedIDList获取修改的行;
可以在保存前事件获取;

服务端获取方式:
接管保存的saveAction,通过遍历table可以获取
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 05:34 , Processed in 0.070458 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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