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

QQ登录

只需一步,快速开始

查看: 2713|回复: 3

[处理中3] 急~DataValueChanged 多触发一次,为什么?

[复制链接]

407

主题

926

帖子

2039

积分

金牌会员

Rank: 6Rank: 6

积分
2039
QQ
发表于 2019-8-8 11:55:59 | 显示全部楼层 |阅读模式
Model.prototype.detailDataValueChanged = function(event) {

        debugger;

        if (turnOffdetailDataValueChanged == 1) {
            console.log("detailDataValueChanged new  do nothing");
            return;
        }
        if (event.col == "bidCost") {
            this.calMainDataBidCost();
            return;
        }
        debugger;
        console.log("detailDataValueChanged ori");

其中: calMainDataBidCost 的具体定义如下   

Model.prototype.calMainDataBidCost = function() {
        inCalMainDataBidCost = 1;   
        console.log("inCalDetailDataBidCost:"+inCalDetailDataBidCost + " inCalMainDataBidCost:"+inCalMainDataBidCost);
        if (inCalDetailDataBidCost == 1) {
            return;
        }
        if (inAdvanceBtnClick == 1) {
            return;
        }
        console.log("calMainDataBidCost");
        debugger;
        var mainData = this.comp("mainData");
        var detailData = this.comp("detailData");
        var bidCost = 0;

        detailData.each(function(param) {
            debugger;
            bidCost = bidCost + param.row.val("bidCost");
        });
        debugger;
        turnOffmainDataValueChanged = 1;
        if (isNaN(bidCost)) {
            mainData.setValue("bidCost", 0);
            debugger;
        } else {
            mainData.setValue("bidCost", bidCost); //在这个地方全局变量
turnOffmainDataValueChanged  使得mainDataValueChanged  这个事件中的内容不执行,有效!
            debugger;
        }
        turnOffmainDataValueChanged = 0;
        inCalMainDataBidCost = 0;
        console.log("calMainDataBidCost over");
    } // 在这边 返回的时候又会执行  
mainDataValueChanged ,为什么 ?

其中:
mainDataValueChanged  受到
turnOffmainDataValueChanged 的影响如下:
    Model.prototype.mainDataValueChanged = function(event) {

        debugger;

        if (turnOffmainDataValueChanged == 1) {
            console.log("mainDataValueChanged new do nothing");
            return;

        }
        if (event.col == "bidCost") {
            this.calDetailDataBidCost();
            return;
        }



请问 : 在
calMainDataBidCost 在结束 返回时候又会执行一次
mainDataValueChanged ? 为什么?





91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36071
发表于 2019-8-8 13:29:47 | 显示全部楼层
setValue赋值了就值执行了啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

407

主题

926

帖子

2039

积分

金牌会员

Rank: 6Rank: 6

积分
2039
QQ
 楼主| 发表于 2019-8-8 15:17:11 | 显示全部楼层
本帖最后由 sandgia 于 2019-8-8 15:18 编辑
jishuang 发表于 2019-8-8 13:29
setValue赋值了就值执行了啊

1565248533(1).png
可能我表达不是很清楚吧,看一下截图,我原本的文字叙述中有一个“又”。



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36071
发表于 2019-8-8 15:45:49 | 显示全部楼层
mainDataValueChange事件中获取改变前和改变后的值看看分别是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 03:42 , Processed in 0.059462 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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