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

QQ登录

只需一步,快速开始

查看: 5662|回复: 11

[结贴] 关于grid的RowValueChanged事件的一些问题

[复制链接]

82

主题

339

帖子

1106

积分

金牌会员

Rank: 6Rank: 6

积分
1106
QQ
发表于 2013-10-30 04:19:57 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 bio_2000 于 2013-10-30 04:34 编辑

grid表的RowValueChanged事件在介绍中说“行级值改变后触发。加载数据时,每渲染完一行后触发。非加载数据时,单元格值改变后触发。”
现在grid表其中有三列数据需要处理,分别是col1、col2和col3,都是数值,col3=col1+col2,要实现的功能是当col1或col2改变时,实时的进行运算使col3的数值变更,代码如下:
var data = justep.xbl('dataMain');
       
        var row = data.getCount();
       
        var column1 = data.getValue("sCPSHonour", data.getCurrentID());
        var column2 = data.getValue("sCPSSpotExchange", data.getCurrentID());       
        var column3 = data.getValue("sCPRHonour", data.getCurrentID());
        var column4 = data.getValue("sCPRSpotExchange", data.getCurrentID());
       
        var m = column1*1 + column2*1;
        var n = column3*1 + column4*1;
        var i = 1;
        if (i<=row)
        {
        data.setValue("sCPaymentsSum",m,data.getCurrentID(i));
        data.setValue("sCPaymentRSum",n,data.getCurrentID(i));
        }
        else
        {
        data.refreshData();
        }

功能已经实现,但是感觉这样写会影响系统的运行速度,所以我想不靠遍历循环通过直接获取选中行,然后在选中行的数值改变时运行代码,但是修改后在加载数据时出现了很大的问题,因为不断的触发代码界面基本无法打开,所以我想能不能在加载数据时不触发我写在事件中的功能代码段直接跳出,而只在非加载数据,单元格值改变时再触发功能代码,要怎么设置事件的属性?用布尔值判断某个参数吗?
更进一步的话,可不可以在特定的单元格数据改变后再触发功能代码段?

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-10-30 08:02:46 | 显示全部楼层
你可以指定列名,只有col1和col2改变的时候才去执行你写的代码,这样或许会好点
if (event.column == "col1" || event.column == "col2"){
你的代码
}
QQ:179785966
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-10-30 08:09:09 | 显示全部楼层

  1. <P>if (event.column == "sCPSHonour" || event.column == "sCPSSpotExchange")
  2. {
  3. var data = justep.xbl('dataMain');
  4. if (data.getValue("sCPSHonour") != '' && data.getValue("sCPSSpotExchange") != '')     
  5. {      
  6. var sCPSHonour= data.getValue("sCPSHonour");
  7. var sCPSSpotExchange= data.getValue("sCPSSpotExchange");        
  8.         
  9. var m = sCPSHonour*1 + sCPSSpotExchange*1;
  10. data.setValue("sCPaymentsSum",m,);
  11. }
  12. }
  13. </P>
复制代码
你这代码也写得有问题,我这样就可以了,你试试

点评

这个代码在data的valueChanged事件中执行  发表于 2013-12-4 13:20

评分

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

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

11

主题

1134

帖子

1261

积分

金牌会员

Rank: 6Rank: 6

积分
1261
QQ
发表于 2013-10-30 08:59:20 | 显示全部楼层
可以通过添加编辑规则实现吧
远程的联系方法QQ2025089647。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要
回复 支持 反对

使用道具 举报

82

主题

339

帖子

1106

积分

金牌会员

Rank: 6Rank: 6

积分
1106
QQ
 楼主| 发表于 2013-10-30 11:11:24 | 显示全部楼层
yinlun 发表于 2013-10-30 08:09
你这代码也写得有问题,我这样就可以了,你试试

你这个是写在mainActivity.grdMainRowValueChanged = function(event)下面吗?虽然看上去很好,可是不管用啊。。。在修改了数据后没有任何反应
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-10-30 11:12:46 | 显示全部楼层
bio_2000 发表于 2013-10-30 11:11
你这个是写在mainActivity.grdMainRowValueChanged = function(event)下面吗?虽然看上去很好,可是不管 ...

是的
QQ:179785966
回复 支持 反对

使用道具 举报

82

主题

339

帖子

1106

积分

金牌会员

Rank: 6Rank: 6

积分
1106
QQ
 楼主| 发表于 2013-10-30 11:47:55 | 显示全部楼层
yinlun 发表于 2013-10-30 11:12
是的

这。。。
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-10-30 12:27:45 | 显示全部楼层
bio_2000 发表于 2013-10-30 11:47
这。。。

也没有报错提示,你这样说我很难判断,你要么加我QQ179785966给你看看?
QQ:179785966
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-10-30 14:44:29 | 显示全部楼层
代码应该写在data组件的onValueChanged事件中,加载时不会触发
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

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

使用道具 举报

82

主题

339

帖子

1106

积分

金牌会员

Rank: 6Rank: 6

积分
1106
QQ
 楼主| 发表于 2013-10-31 02:52:56 | 显示全部楼层
yinlun 发表于 2013-10-30 12:27
也没有报错提示,你这样说我很难判断,你要么加我QQ179785966给你看看?

我的意思是我的代码有问题,但是还能满足需求,col3的数值是可以实时的随着col1和col2的值改变而改变的,你给的代码我试过,无论怎么改col1和col2,col3都没有变化,不报错,也不管用。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 05:04 , Processed in 0.066490 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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