找回密码
 立即注册

QQ登录

只需一步,快速开始

新西兰奶牛

注册会员

3

主题

10

帖子

31

积分

注册会员

积分
31
最新发帖
新西兰奶牛
注册会员   /  发表于:2024-12-12 11:18  /   查看:111  /  回复:4
本帖最后由 Wilson.Zhang 于 2025-1-3 09:33 编辑

产品:SpreadJS
版本:14.2.6
调研编号:SJS-27735
Last Review:2024-12-16
当前进展:非功能问题,已提供正确使用方式。

【需求】: 在 designer 上增加一个按钮,打开 查找窗口,但是要求这个查找窗口不要有替换功能
image.png514456481.png
【现有做法】:
   1、取得查找窗口的 template,移除“替换”标签页,然后注册成 cusFindDialog
      var findTemplate = GC.Spread.Sheets.Designer.getTemplate("findDialogTemplate");

    //移除第二个元素
    findTemplate.title='查找';
    findTemplate.content[0].children.splice(1, 1);
    GC.Spread.Sheets.Designer.registerTemplate("cusFindDialog", findTemplate);





2. 调用 GC.Spread.Sheets.Designer.showDialog("cusFindDialog");  打开自定义的窗体


【问题】:
  1、虽然打开后的窗口没有了 “替换” 标签页,但是输入内容点击 “查找下一个“时,出现 js 错误:
    image.png481132201.png

   2、选项区域默认是打开的,需要变成默认不打开
image.png992567749.png

4 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-12-12 12:12:06
沙发
您好!根据您提供的操作代码,我也复现了问题。调研下先,调研编号为SJS-27735,之后会及时向您同步结论。请您耐心等候。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-13 10:22:10
板凳
您看哈,GC.Spread.Sheets.Designer.showDialog是个静态方法,非某个具体对象调用,因此这样调用弹出的查找对话框缺少了一些必要的上下文信息,这才导致使用时抛出异常信息。

对于您的需要,可以参考如下代码,在工具栏添加一个自定义按钮以弹出符合您需要的仅包含查找功能的对话框:
  1. var baseTemplate = GC.Spread.Sheets.Designer.getTemplate("findDialogTemplate");
  2. var onlyFindTemplate = GC.Spread.Sheets.Designer.getTemplate("findDialogTemplate");
  3. onlyFindTemplate.content[0].children.splice(1, 1);
  4. var findCmd = GC.Spread.Sheets.Designer.getCommand("find");
  5. var findCmdExe = findCmd.execute;
  6. findCmd.bigButton = true;
  7. findCmd.commandName = 'findEx';
  8. findCmd.execute = function (context, selectValue) {
  9.     GC.Spread.Sheets.Designer.registerTemplate('findDialogTemplate', onlyFindTemplate);
  10.     findCmdExe.apply(this, arguments);
  11.     GC.Spread.Sheets.Designer.registerTemplate('findDialogTemplate', baseTemplate);
  12. };
  13. findCmd.text = "My Find";
  14. var config = GC.Spread.Sheets.Designer.DefaultConfig;
  15. config.ribbon[0].buttonGroups[7].commandGroup.children.push('findEx');
  16. config.commandMap = {
  17.     findEx: findCmd
  18. }
  19. designer.setConfig(config);
复制代码
回复 使用道具 举报
新西兰奶牛
注册会员   /  发表于:2024-12-16 16:34:02
地板
OK,已解决!  非常感谢 !
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-16 17:46:12
5#
新西兰奶牛 发表于 2024-12-16 16:34
OK,已解决!  非常感谢 !

不客气,那就结帖了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部