找回密码
 立即注册

QQ登录

只需一步,快速开始

aritime

注册会员

24

主题

43

帖子

157

积分

注册会员

积分
157
aritime
注册会员   /  发表于:2016-11-15 16:52  /   查看:3868  /  回复:8
如下代码获取到浮动对象,每个浮动对象都是显示一段文本,但我要定期修改里面的文本,请问怎么操作。
                    var activeSheet = spread1.getActiveSheet();
                    var floating = activeSheet.getFloatingObjects();
                    for (var i = 0; i < floating.length; i++)
                    {
                        
                    }

8 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-15 17:18:58
沙发
修改 CustomFloatingObject 的 Content  
http://sphelp.grapecity.com/webh ... Object~Content.html
回复 使用道具 举报
aritime
注册会员   /  发表于:2016-11-16 08:09:41
板凳
没看懂这个帮助,例如我想把“123.45”这个字符串修改到浮动对象,怎么操作?
回复 使用道具 举报
aritime
注册会员   /  发表于:2016-11-16 08:41:22
地板
我生成一个浮动对象,里面放一个文本框,如下代码:
        var customFloatingObject2 = new GcSpread.Sheets.CustomFloatingObject('f2', 10, 20, 50, 30);
                    var inText = document.createElement("input");
                    inText.setAttribute("type", "text");
                    inText.id = "zqg2";
                    inText.style.width = "40px";
                    inText.style.height = "25px";
                    inText.value = "[tag_888]";
                    customFloatingObject2.Content(inText);
                    sheet1.addFloatingObject(customFloatingObject2);
然后,我用定时器每分钟改变文本框的值,但为什么改变后的值没有显示出来呢,代码如下:
            var data = response.responseText.split('*');
                    var activeSheet = spread1.getActiveSheet();
                    var floating = activeSheet.getFloatingObjects();
                    for (var i = 0; i < floating.length; i++)
                    {
                        if (i == 1)
                        {
                            var returnValue = floating[i].Content();
                            returnValue.value = data[i];
                            //returnValue.innerText = data[i];
                            //floating[i].content = data[i];
                        }

                    }
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 10:29:26
5#
您好,这个问题需要开发人员协助处理,有解决方案后会及时给您回复
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 14:49:37
6#
您好,在 CustomFloatingObjectLoaded 事件中可以获取到真实的DOM 元素,直接操作customFloatingObject2Content即可

  1.         var customFloatingObject2 = new GcSpread.Sheets.CustomFloatingObject('f2', 10, 20, 50, 30);
  2.         var inText = document.createElement("input");
  3.         inText.setAttribute("type", "text");
  4.         inText.id = "zqg2";
  5.         inText.style.width = "40px";
  6.         inText.style.height = "25px";
  7.         inText.value = "[tag_888]";
  8.         customFloatingObject2.Content(inText);
  9.         customFloatingObject2.name("cfo2")

  10.         var customFloatingObject2Content;
  11.         sheet.bind(GcSpread.Sheets.Events.CustomFloatingObjectLoaded, function (e, info) {   
  12.             if(info.customFloatingObject.name() === "cfo2"){
  13.                 customFloatingObject2Content = info.element;
  14.             }
  15.             
  16.         });
  17.         sheet.addFloatingObject(customFloatingObject2);

  18.         setTimeout(function(){
  19.             customFloatingObject2Content.value = "111"
  20.         }, 2000)
复制代码
回复 使用道具 举报
aritime
注册会员   /  发表于:2016-11-16 16:28:22
7#
dexteryao 发表于 2016-11-16 14:49
您好,在 CustomFloatingObjectLoaded 事件中可以获取到真实的DOM 元素,直接操作customFloatingObject2Con ...

请问我添加了浮动对象,然后保存,下次再加载时(spread1.fromJSON(JSON.parse(json["theData"]))),
怎么获取到element?
回复 使用道具 举报
aritime
注册会员   /  发表于:2016-11-16 16:29:12
8#
aritime 发表于 2016-11-16 16:28
请问我添加了浮动对象,然后保存,下次再加载时(spread1.fromJSON(JSON.parse(json["theData"]))),
...

或者说怎么再次触发CustomFloatingObjectLoaded事件
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 17:25:21
9#
您把 事件绑定到spread 上。 然后再fromJson
spread.bind(GcSpread.Sheets.Events.CustomFloatingObjectLoaded, function (e, info) {   
      
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部