找回密码
 立即注册

QQ登录

只需一步,快速开始

Samuer
金牌服务用户   /  发表于:2022-11-8 16:58  /   查看:1080  /  回复:4

1bd69acfb685c472931f0b407cd9c4b.jpg921236267.png

817a8f660029722149c7640f93a9f75.jpg125985411.png

如上图,在定制的迷你图中,希望在paint的方法中能够获取当前单元格样式,用当前单元格的 forecolor 的值绘制双横线的颜色,如果单元格的 forecolor 改变,双横线也会跟着变化。

4 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-8 17:39:46
沙发
本帖最后由 Lynn.Dou 于 2022-11-9 11:01 编辑

您好,
经测试在SparklineEx paint方法内没有直接接口来获取到spread上下文,这边调研下看是否有其他方案。
目前建议方案,对于单元格样式等信息,您在自定制迷你图之前获取保存为一个变量,然后在paint方法内使用。

“如果单元格的 forecolor 改变” 从之前沟通中了解到您是通过代码修改的foreColor,
那么可以在修改foreColor后更改变量的值,然后执行repaint方法进行重绘。
附件为示例demo,您可以参考下。
效果如下:
image.png929393615.png
image.png20000304.png

自定义迷你图.zip

2.42 KB, 下载次数: 49

回复 使用道具 举报
Samuer
金牌服务用户   /  发表于:2022-11-8 17:57:32
板凳
这个好像不太行,一是这种单元格非常多,一个项目多的话有近千个,二是这些单元格是动态的,有插删行列的动作
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-8 18:06:43
地板
思路就是在设置迷你图之前,先获取到迷你图单元格所在单元格的前景色,作为变量保存。
如果执行了修改前景色的代码逻辑,则改变变量值再重新绘制表单。
“这些单元格是动态的,有插删行列的动作”
结合前面的思路,只要能获取到前景色再重绘即可,关于这块,您结合实际业务情况思考下是否有相关的困难,比如无法通过监听等获取到前景色等。如果有请再详细描述下遇到的问题,再针对性的调研解决方案。
关于一所述的性能问题,建议您实际测试下,测试中有问题再提供具体的复现文件进行调研原因。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-9 18:36:17
5#
经进一步调研,自定义迷你图实际上也是自定义函数实现的,所以可以以此入手,在paint方法内使用 arguments 获取上下文信息:
如下图:
image.png435692748.png

image.png700746154.png

附件为完整demo,您可以参考下。

features_sparklines_custom-sparkline-ex_JavaScript.zip

2.63 KB, 下载次数: 45

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