找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-25 14:10:35
10#
本帖最后由 Lynn.Dou 于 2023-4-25 14:37 编辑


对前面描述方案做了调整,不自定义新的command了,而是在原命令基础上做修改。
demo见附件,主要代码如下:
  1. var newInsertChartCommand = GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandNames.InsertChart);
  2.             if (newInsertChartCommand) {
  3.                 var oldExecute = newInsertChartCommand.execute;
  4.                 newInsertChartCommand.execute = function (context, propertyName, args) {
  5.                     //添加confirm逻辑
  6.                     console.log("重写插入图表逻辑");
  7.                     // 判断当前选择区域的列数
  8.                     var activeSheet = context.getWorkbook().getActiveSheet();
  9.                     var sel = activeSheet.getSelections()[0];
  10.                     if(sel.colCount != 2) {
  11.                         oldExecute.call(this, context, propertyName, args);
  12.                     } else {
  13.                         alert("数据为2列,禁止插入");
  14.                     }
  15.                 }
  16.             }
  17.             designerConfig.commandMap = {};
  18.             designerConfig.commandMap[GC.Spread.Sheets.Designer.CommandNames.InsertChart] = newInsertChartCommand;
复制代码
效果图如下:
image.png682769775.png

注:demo仅供参考思路,具体实现请根据实际业务需求自行设计。

重写insertChart-小于2列禁止插入图表.html

4.63 KB, 下载次数: 239

回复 使用道具 举报
web_chuan
金牌服务用户   /  发表于:2023-4-26 09:53:21
11#
Lynn.Dou 发表于 2023-4-25 14:10
对前面描述方案做了调整,不自定义新的command了,而是在原命令基础上做修改。
demo见附件,主要代码如 ...

image.png111634520.png

image.png484908751.png

你这个和我之前代码一样啊,有啥区别? 我的问题是 点击除了柱状图能监听到事件,别的图表监听不到事件。
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-26 10:12:27
12#
您要的是这种效果吗?

test.gif644218749.png
回复 使用道具 举报
web_chuan
金牌服务用户   /  发表于:2023-4-26 10:24:12
13#
MillionDream 发表于 2023-4-26 10:12
您要的是这种效果吗?

对的 就是这种
回复 使用道具 举报
web_chuan
金牌服务用户   /  发表于:2023-4-26 10:37:31
15#
MillionDream 发表于 2023-4-26 10:31
您把那个Command的Name换成如下图片所示的就行。

是的 这种是可以,但这么多..... 难道还要循环重写方法吗? 我现在就是想问问他们有没有快捷重写一个方法的就行
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-26 10:41:10
16#
看样子只能用循环去重写了,因为我在文档上只找到这个,没有找到统一的添加Chart的Command。
回复 使用道具 举报
web_chuan
金牌服务用户   /  发表于:2023-4-26 10:45:46
17#
MillionDream 发表于 2023-4-26 10:41
看样子只能用循环去重写了,因为我在文档上只找到这个,没有找到统一的添加Chart的Command。

您这个文档可否发下,我看看,谢谢。
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-26 11:02:16
18#
web_chuan 发表于 2023-4-26 10:45
您这个文档可否发下,我看看,谢谢。

https://demo.grapecity.com.cn/spreadjs/help/api/designer/classes/GC.Spread.Sheets.Designer.CommandNames#addchartelement
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-26 11:03:55
19#
您在这个页面搜索Chart,然后就基本上可以看到所有涉及到的ChartType了。
回复 使用道具 举报
web_chuan
金牌服务用户   /  发表于:2023-4-26 14:16:08
20#
MillionDream 发表于 2023-4-26 11:03
您在这个页面搜索Chart,然后就基本上可以看到所有涉及到的ChartType了。

好的谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部