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

QQ登录

只需一步,快速开始

spreadjs666
金牌服务用户   /  发表于:2025-3-12 20:14  /   查看:70  /  回复:1
1金币
本帖最后由 Wilson.Zhang 于 2025-3-21 12:31 编辑

【v17】如何在不保护表格的情况下禁止修改图表,

如何在双击图表时根据 变量flag 判断能否弹出右侧弹窗,true则弹出,false则禁止弹出
image.png277893370.png

最佳答案

查看完整内容

您好!可以通过FloatingElementSelected事件监听,但是只能监听到鼠标单击,不能监听到鼠标双击。在事件处理函数中根据flag变量控制图表对应面板的可见性,下面介绍如何控制图表对应设置面板的可见性。 Designer面板配置在DefaultConfig对象的sidePanels属性,如下图所示,不同类型图表各自对应一个独立面板实对象和实体: 以柱状图为例,面板是否可见由其对应命令的visibleContext属性控制,属性值为各boolean值控制属 ...

1 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-3-12 20:14:11
来自 2#
您好!可以通过FloatingElementSelected事件监听,但是只能监听到鼠标单击,不能监听到鼠标双击。在事件处理函数中根据flag变量控制图表对应面板的可见性,下面介绍如何控制图表对应设置面板的可见性。

Designer面板配置在DefaultConfig对象的sidePanels属性,如下图所示,不同类型图表各自对应一个独立面板实对象和实体:
1741833157408.png841626586.png


以柱状图为例,面板是否可见由其对应命令的visibleContext属性控制,属性值为各boolean值控制属性的名称,如下图所示:
1741833286897.png557297668.png

由于不同命令的visibleContext属性值中包含有相同的控制属性名称,如果针对某个命令修改了visibleContext属性值中某控制属性值,可能会对其他命令产生影响。所以,一般情况下,可以在原visibleContext属性值基础上通过逻辑运算符&&关联一个独立的自定义控制属性,之后通过Designer:setData()对该自定义控制属性设置true或false以控制相关面板可见与否。

可参考如下代码控制柱状图的可见性,对其他图表类型对应面板的可见性也遵循相同原理:
  1. var designerConfig = GC.Spread.Sheets.Designer.DefaultConfig;
  2. designer.setData("myColumnChartPanelShow", true);
  3. var columnChartPanelCmd = GC.Spread.Sheets.Designer.getCommand("columnChartPanel");
  4. columnChartPanelCmd.visibleContext = "(" + columnChartPanelCmd.visibleContext + ") && myColumnChartPanelShow";
  5. designerConfig.commandMap = {};
  6. Object.assign(designerConfig.commandMap, {
  7.     "columnChartPanel": columnChartPanelCmd
  8. });
  9. designer.setConfig(designerConfig);
  10. designer.setData("myColumnChartPanelShow", false);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部