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

QQ登录

只需一步,快速开始

查看: 852|回复: 5

[结贴] tree 修改某个枝杈的名称 触发代码修改相关子枝杈的全路径

[复制链接]

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
发表于 2014-8-7 09:12:36 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MS SQLServer 服务器操作系统: 应用服务器:
客户端操作系统: Windows XP 浏览器: Chrome
问题背景
按照论坛的指导写了通过js实现了,tree数据的全路径
代码如下
mainActivity.dataMainValueChanged = function(event){
                   
        var colname = event.column;
        var value = event.value;
        if (colname == "fLXMC") {
                var data = justep.xbl("dataMain");           
                var fpath = "";
                var obj = [];               
                var ffname = "";
                var icount = data.getCount();
                     //重写每条记录的路径
                for (var i=1; i<icount; i++){
                    fpath = data.getValue("fTby1", data.getID(i));
                   obj=fpath.split("/")//fpath
                    len=obj.length
                      // 循环获取节点名称,用/连接
                      ffname = "/宏业集团";  
                    for ( var j = 1; j < obj.length; j++) {
                      if(j>1){
                     ffname += "/"+data.getValue("fLXMC", obj[j]);
                     }
                       }
                    data.setValue("fTby", ffname, data.getID(i));

                }
        }   
};

问题是 树全展开时,修改一行的名称,相关行的全路径可以修改正确。但是如果不展开,就不修改对应的行。
把代码修改,添加了一行,全展开的代码
mainActivity.dataMainValueChanged = function(event){
         justep.xbl('dataMain').expandAll();                  
        var colname = event.column;
        var value = event.value;
        if (colname == "fLXMC") {
                var data = justep.xbl("dataMain");           
                var fpath = "";
                var obj = [];               
                var ffname = "";
                var icount = data.getCount();
                     //重写每条记录的路径
                for (var i=1; i<icount; i++){
                    fpath = data.getValue("fTby1", data.getID(i));
                   obj=fpath.split("/")//fpath
                    len=obj.length
                      // 循环获取节点名称,用/连接
                      ffname = "/宏业集团";  
                    for ( var j = 1; j < obj.length; j++) {
                      if(j>1){
                     ffname += "/"+data.getValue("fLXMC", obj[j]);
                     }
                       }
                    data.setValue("fTby", ffname, data.getID(i));

                }
        }   
};


但是这样任然不可以:修改了某个名称,点击保存,从ie操作界面上看,是全展开了,但是,从后台一看,数据仍然没有修改。必须在已经展开的情况下,再修改一遍,才可以保存修改的数据。

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-8-7 09:57:07 | 显示全部楼层
把getCount()换成getTotal()试试
QQ:179785966
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2014-8-7 10:53:00 | 显示全部楼层
跟一下看看获取的时候是否获取到了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-8-14 11:20:21 | 显示全部楼层
是可以获取到,可是,修改路径中设计到的名称,仍然是不展开的无法修改
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2014-8-14 14:15:30 | 显示全部楼层
测试没问题
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-8-15 11:56:00 | 显示全部楼层
在论坛中查了一下 遍历 tree的资料,用一个 全部展开的函数解决了。
结贴吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 16:58 , Processed in 0.096251 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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