请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

newAll
中级会员   /  发表于:2024-5-14 11:21  /   查看:261  /  回复:8
1金币
本帖最后由 newAll 于 2024-5-14 12:37 编辑

您好,原帖:设置可选择的函数 - SpreadJS & GcExcel专区 - 求助中心 - 葡萄城开发者社区 (grapecity.com.cn) ,通过原帖中的方法,虽然实现了,但是引发了一些问题:

1.因为是通过registerTemplate(GC.Spread.Sheets.Designer.TemplateNames.InsertFunctionDialogTemplate, newTemplate)设置的,修改了全局的模板,会影响到别我们别的地方使用设计器的fx,导致所有的fx都是newTemplate
2.自定义函数模板后,setResource设置语言不生效

请问有什么方法能解决呢?

image.png473397826.png

8 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-14 17:33:59
沙发
您好,

1、因为模板注册是全局注册,所以会有相互影响的问题,根据你描述的情况,目前可行的方案是先创建insertFunctionDialogTemplate的备份,然后在不同情况下注册不同的模板(修改前/修改后)。

2、在registerTemplate后,模板中的语言资源将被锁定,无法再根据语言环境的改变而改变,所以只能是在改变语言环境后重新注册模板来实现。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
newAll
中级会员   /  发表于:2024-5-14 20:31:16
板凳
Joestar.Xu 发表于 2024-5-14 17:33
您好,

1、因为模板注册是全局注册,所以会有相互影响的问题,根据你描述的情况,目前可行的方案是先创 ...

谢谢,但是:
1. 同一个页面中两个Designer,只有其中一个修改模板呢?
2. 组件初始化的时候setResources,重新注册模板的方法写在designerInitialized中的,不生效
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-15 13:35:38
地板
您好,

1、由于模板是在全局注册的,所以对所有的设计器都会生效,如果只想要其中一个变化,可以考虑在切换时(mouseenter事件)重新注册模板。

2、不太确定您具体是怎么注册的?是否有相关的Demo可以让我参考呢?
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
newAll
中级会员   /  发表于:2024-5-16 19:09:43
5#
Joestar.Xu 发表于 2024-5-15 13:35
您好,

1、由于模板是在全局注册的,所以对所有的设计器都会生效,如果只想要其中一个变化,可以考虑在 ...

老师,请问能监听到fx弹窗前和关闭后的事件吗?我想弹窗前修改模板,关闭后再还原模板
回复 使用道具 举报
newAll
中级会员   /  发表于:2024-5-16 19:18:24
6#
Joestar.Xu 发表于 2024-5-15 13:35
您好,

1、由于模板是在全局注册的,所以对所有的设计器都会生效,如果只想要其中一个变化,可以考虑在 ...

或者能通过实例修改模板吗
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-17 12:29:18
7#
您好,正如之前所述,建议通过mouseenter事件来实现这个需求,原生上没有提供点击前和关闭后的事件。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
newAll
中级会员   /  发表于:2024-5-17 15:16:17
8#
Joestar.Xu 发表于 2024-5-17 12:29
您好,正如之前所述,建议通过mouseenter事件来实现这个需求,原生上没有提供点击前和关闭后的事件。

image.png20634764.png image.png987250366.png 老师,资源文件insertFunctionDialog中没有<确定>和<取消>,初始已经通过GC.Spread.Common.CultureManager.culture('en-us)和GC.Spread.Sheets.Designer.setResources(多语资源文件); 设置了语言,修改了模板后,确定和取消没有翻译,请问怎么才能翻译这俩按钮呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-17 17:33:28
9#
SpreadJS和Designer上都存在这样的资源:

image.png217438353.png

image.png984863586.png

可以从以这两个文件作为方向去排查。

如果仍无法解决的话,您这边提供一个您目前代码的Demo,这边帮您调研看看。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部