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

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: zdq

[结贴] grid中的行怎么遍历?

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2014-7-21 13:52:52 | 显示全部楼层
遍历grid中的数据,就是遍历data中的数据,上面的代码写错了
参考 http://bbs.justep.com/forum.php? ... 2&pid=164960999
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

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

使用道具 举报

448

主题

1226

帖子

2613

积分

金牌会员

Rank: 6Rank: 6

积分
2613
QQ
 楼主| 发表于 2014-7-21 14:23:21 | 显示全部楼层
zhaixin 发表于 2014-7-21 13:52
遍历grid中的数据,就是遍历data中的数据,上面的代码写错了
参考 http://bbs.justep.com/forum.php?mod=re ...

遍历了,但是第一行的数据不对。
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2014-7-21 14:36:58 | 显示全部楼层
发一下代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

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

使用道具 举报

448

主题

1226

帖子

2613

积分

金牌会员

Rank: 6Rank: 6

积分
2613
QQ
 楼主| 发表于 2014-7-21 14:53:17 | 显示全部楼层
本帖最后由 zdq 于 2014-7-21 14:55 编辑

mainActivity.dataMasterValueChanged = function(event){
        if(event.column == "tfHeTBDE"){ //主表的字段:合同标的额
  
                var d = justep.xbl('dataDetail');  
                var dd = justep.xbl('dataMaster');      
                        for ( var i = 0; i < d.getCount(); i++) {
                                var rowid = d.getID(i);
                                var v = d.getValue('tfSHouKBL',rowid);//子表的字段:收款比例
                                var vv = d.getValue('tfSHouKJE',rowid);//子表的字段:收款金额  
                                var changedvalue = (v/100)*dd.getValue('tfHeTBDE');//合同表的额改变之后,更改收款金额的值
                                d.setValue('tfSHouKJE', changedvalue, rowid);//设置收款金额为changedvalue
        }

        }
              
         
         
         
};
回复 支持 反对

使用道具 举报

发表于 2014-7-21 15:07:37 | 显示全部楼层
zdq 发表于 2014-7-21 13:09
还是不行 ,要不就是第一行改变,要不就是最后一行改变。是不是要加一个for循环? ...

你调用fist()的时候要先判断下 你的循环是否走了一遍了,要不然你在值改变的时候调用你的方法总是会先执行first方法 永远是第一行
回复 支持 反对

使用道具 举报

448

主题

1226

帖子

2613

积分

金牌会员

Rank: 6Rank: 6

积分
2613
QQ
 楼主| 发表于 2014-7-21 15:39:36 | 显示全部楼层
暗夜的忧伤 发表于 2014-7-21 15:07
你调用fist()的时候要先判断下 你的循环是否走了一遍了,要不然你在值改变的时候调用你的方法总是会先执行 ...

这个应该怎么判断啊,一点头绪没有
回复 支持 反对

使用道具 举报

448

主题

1226

帖子

2613

积分

金牌会员

Rank: 6Rank: 6

积分
2613
QQ
 楼主| 发表于 2014-7-21 16:23:03 | 显示全部楼层
谢谢各位高手的指点 ,问题已经解决。
解决方案:
因为有些时候不需要触发某些事件(大多数时候需要触发该事件),所以可以设置一个全局变量当“开关”
1.设置一个全局变量 var masterChanged = false;
2.在不需要触发的时候添加:if(masterChanged)     return;
3.在需要触发的时候添加 :masterChanged = true;               
4.用完了之后别忘了还原回去:masterChanged=false;
再次感谢指导我的高手们。谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 12:40 , Processed in 0.086622 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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