找回密码
 立即注册

QQ登录

只需一步,快速开始

西安小菜鸟

注册会员

10

主题

30

帖子

112

积分

注册会员

积分
112
西安小菜鸟
注册会员   /  发表于:2024-4-9 18:27  /   查看:2313  /  回复:7
1金币
本帖最后由 Joestar.Xu 于 2024-4-11 17:12 编辑

HHRMM@XK)(KJ6%1Q_RC~KBR.jpg375962828.png

点击实时刷新按钮,上方开关图片 选中未选中切换,请问代码里如何书写

image.png995226440.png
开关 开.png298558654.png

最佳答案

查看完整内容

您好,可以参考下面的代码 核心代码是 当选择图表后,发现dom元素会添加check属性,如下图 所以添加相应的css样式即可: 效果如下:

7 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 18:27:37
来自 6#
您好,可以参考下面的代码
  1.             var config = GC.Spread.Sheets.Designer.DefaultConfig;
  2.             config.commandMap = {
  3.                 Welcome: {
  4.                     title: "Welcome",
  5.                     text: "Welcome",
  6.                     iconClass: "ribbon-button-welcome",
  7.                     type:"checkbox",
  8.                     bigButton: "true",
  9.                     commandName: "Welcome",
  10.                     execute: function (context, propertyName, checked) {
  11.                         designer.setData('flag', checked);
  12.                     },

  13.                     getState: function (context, prop) {
  14.                         return designer.getData('flag');
  15.                     }
  16.                 }
  17.             }
  18.             config.ribbon[0].buttonGroups.unshift({
  19.                 "label": "NewDesigner",
  20.                 "thumbnailClass": "welcome",
  21.                 "commandGroup": {
  22.                     "children": [
  23.                         {
  24.                             "direction": "vertical",
  25.                             "commands": [
  26.                                 "Welcome"
  27.                             ]
  28.                         }
  29.                     ]
  30.                 }
  31.             });
  32.             var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("gc-designer-container"), config);
复制代码
核心代码是
  1.     execute: function (context, propertyName, checked) {
  2.                         designer.setData('flag', checked);
  3.                     },

  4.                     getState: function (context, prop) {
  5.                         return designer.getData('flag');
  6.                     }
复制代码
当选择图表后,发现dom元素会添加check属性,如下图
image.png327834471.png
所以添加相应的css样式即可:
  1. .ribbon-button-welcome {
  2. background:url('./1.png');
  3.     background-image:background-size: 35px 35px;
  4. }
  5. .gc-ribbon-bar .ribbon-button-checkbox.big-button[checked="true"] .ribbon-button-item-icon ,
  6. .gc-ribbon-bar .ribbon-button-checkbox.gc-icon-text-both[checked="true"] .ribbon-button-item-icon{
  7.     background:url('./2.png');
  8.     background-size: 35px 35px;
  9. }
复制代码
效果如下:
切换图标.gif
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-10 09:51:21
2#
您好。Designer中菜单没有您图片中的图表及功能,您应该是自定义了这部分内容。关于点击事件,您可以在自定义的execute做相关逻辑。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-10 09:51:43
3#
您好,我想您可以参考我们这篇技术博客实现您的开关的持久性状态:https://gcdn.grapecity.com.cn/fo ... 1&fromuid=59119
回复 使用道具 举报
西安小菜鸟
注册会员   /  发表于:2024-4-10 10:09:09
4#
Ellia.Duan 发表于 2024-4-10 09:51
您好。Designer中菜单没有您图片中的图表及功能,您应该是自定义了这部分内容。关于点击事件,您可以在自定 ...

不知道execute里用什么api替换iconClass图片

  realTimeRefresh: {
      text: '实时刷新',
      iconClass: 'ribbon-btn-realTimeRefresh-close',
      bigButton: 'true',
      commandName: 'realTimeRefresh',
      enableContext: 'sini-ribbon-realTimeRefresh',
      execute: (context, propertyName, fontItalicChecked) => {

      },
    },
回复 使用道具 举报
西安小菜鸟
注册会员   /  发表于:2024-4-10 10:11:18
5#
Richard.Huang 发表于 2024-4-10 09:51
您好,我想您可以参考我们这篇技术博客实现您的开关的持久性状态:https://gcdn.grapecity.com.cn/forum.ph ...

请问替换iconClass图片的api是哪个?
回复 使用道具 举报
西安小菜鸟
注册会员   /  发表于:2024-4-11 17:09:30
7#
Ellia.Duan 发表于 2024-4-9 18:27
您好,可以参考下面的代码
核心代码是
当选择图表后,发现dom元素会添加check属性,如下图

感谢,已解决
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-11 17:16:02
8#

好的,本帖子的问题解决,这里就先结帖了。后续如果您有新的问题,也欢迎创建新的求助帖。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部