找回密码
 立即注册

QQ登录

只需一步,快速开始

xinxin413

注册会员

8

主题

21

帖子

67

积分

注册会员

积分
67
xinxin413
注册会员   /  发表于:2020-6-4 10:37  /   查看:4239  /  回复:7
2金币
大佬你好,我想问一个问题我的spreadJs版本是12
1,sheet = spread.getActiveSheet();
     sheet.setHyperlink(4, 5, { url: "www.google.com", tooltip: "Google" });


我执行上面这语句的时候报错,错误是sheet.setHyperlink is not a function,这是什么原因呢?

2,var h = new GC.Spread.Sheets.CellTypes.HyperLink();
            h.text("入力");
            h.activeOnClick(true);
            h.linkColor("blue");
            h.visitedLinkColor("blue");
            h.onClickAction(function() {
                    console.log("You click a linkkkkkk.\n");
                    this.openWindow(this, '/B020201', '');
            });
            sheet.setCellType(sampleRow, inputLinkCol, h, GC.Spread.Sheets.SheetArea.viewport);
代码是上面这样写的,然后我点击链接,没有反应,那个console里面也没打印出来东西,是怎么回事儿呢?

最佳答案

查看完整内容

你好, 1、超链接单元格是一个单元格类型,没有你描述的这个方法,具体设置方法参考: https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/cell-types/hyperlink/purejs 2、我测试了你的代码,this在这里所指的是这个celltype对象,它本身没有openWindow方法,如图:

7 个回复

倒序浏览
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-4 10:37:11
来自 2#
你好,
1、超链接单元格是一个单元格类型,没有你描述的这个方法,具体设置方法参考:
https://demo.grapecity.com.cn/sp ... es/hyperlink/purejs

2、我测试了你的代码,this在这里所指的是这个celltype对象,它本身没有openWindow方法,如图:

image.png541617431.png
回复 使用道具 举报
xinxin413
注册会员   /  发表于:2020-6-4 14:37:29
3#
KevinChen 发表于 2020-6-4 13:52
你好,
1、超链接单元格是一个单元格类型,没有你描述的这个方法,具体设置方法参考:
https://demo.grap ...

谢谢回答,1,是我弄混了,我明白了。
2,那个openWindow是我自己的方法,在下面写的。我这边console.log("You click a linkkkkkk.\n");这里也是不打印的,可是我看您那边打印了这句话,那是我们的版本不一样吗,我刚才就是把openWindow删除了也是不打印You click a linkkkkkk.这句,我需要在提供一下什么给你看看呢?
回复 使用道具 举报
xinxin413
注册会员   /  发表于:2020-6-4 15:08:37
4#
KevinChen 发表于 2020-6-4 13:52
你好,
1、超链接单元格是一个单元格类型,没有你描述的这个方法,具体设置方法参考:
https://demo.grap ...

大佬,我刚才试了一下,那个我用你的方法在前台F12编辑器里面跟你一样写了代码之后,我这也能打印出来You click a linkkkkkk.的文字了,可是同样的写法 在代码里执行就不打印,这是为什么呢?我代码后面有些spread.bind(GC.Spread.Sheets.Events.CellClick,和spread.bind(spreadNS.Events.ButtonClicked,有什么影响吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-4 15:08:38
5#
其实你的代码已经很完善了,我在这个地址下,直接打开console测试的,你试试:
https://demo.grapecity.com.cn/sp ... s/hyperlink/purejs/
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-4 15:09:14
6#
如果还是找不到问题原因,可以打包一个能运行能重现问题的Demo,发到附件即可。
回复 使用道具 举报
xinxin413
注册会员   /  发表于:2020-6-4 15:23:59
7#
KevinChen 发表于 2020-6-4 15:09
如果还是找不到问题原因,可以打包一个能运行能重现问题的Demo,发到附件即可。

大佬大佬,我知道问题的所在了!我设置这句话h.onClickAction(function() {的是一个格式隐藏sheet(隐藏sheet执行了打印),画面上真正表示的sheet都是用newSheet.fromJSON(JSON.parse(JSON.stringify(formatSheet.toJSON())));这个方法复制的页面,但是他ToJSON的时候,h.onClickAction这里的操作没有复制过来。所以新的页面没有执行那个onClick里面的方法,这个 我要怎么修正一下呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-4 16:27:54
8#
额~~~ 从你的描述来看,我猜你的问题在于自定义的逻辑在新的表单实例中没有生效~

正常来讲,针对自定义单元格(或其它自定义元素),想要在新的Workbook中生效,

需要在声明自定义单元格类型时加一个标注,参考这个示例:

https://demo.grapecity.com.cn/sp ... erialization/purejs

我没有看到你的完整代码,不清楚具体你是怎么实现的,如果还解决不了,可以给我个Demo~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部