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

QQ登录

只需一步,快速开始

LLj

初级会员

11

主题

55

帖子

261

积分

初级会员

积分
261

[已处理] 给表格添加样式

LLj
初级会员   /  发表于:2018-12-18 10:19  /   查看:3760  /  回复:8
可不可以这样,我给一个单元格的最右边添加一个符号,比如这儿的倒三角,也可能是其他的符号,要的效果就是类似与combox一样,我用代码给这一个单元格赋值的时候那个单元格里面的符号不会被覆盖,无论怎么给值,那个符号都在那个单元格的右边放着不动, Q4S[FS7AFU{)XKFE_XN1~CW.png ,我试过combox,我不给他值的时候还是会有点击效果(就是点击的时候在combox的下面会有一个小小的空白区域弹出来供选择的,而我不需要这个),请问这个怎么处理? (AYI]_VCEE8J]`9J_4(IJXI.png ,【就是比如我需要给1,1这个单元格添加一个三角形嘛,我后期还要通过代码给1,1赋值,单元格里面的三角形了一直需要在里面,他不可以影响我的取值和赋值】

8 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 12:14:57
沙发
可以实现。

您可以通过自定义单元格类型来实现这个功能,

我给您提供一个Demo,您尝试运行一下。

CustomCellType_Base_Icon.html

2.64 KB, 下载次数: 149

回复 使用道具 举报
LLj
初级会员   /  发表于:2018-12-18 13:41:58
板凳
嗯嗯,要的就是还没有 点击按钮的时候的那种,请问api实在哪儿,还有那个图形可以随意变化么(通过代码改变样式)
回复 使用道具 举报
LLj
初级会员   /  发表于:2018-12-18 13:58:38
地板
比如我画一个正方形,园,正三角,都是可以画出来的么
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 14:06:36
5#
LLj 发表于 2018-12-18 13:58
比如我画一个正方形,园,正三角,都是可以画出来的么

是的,您可以在paint方法中使用ctx随意绘制您需要的图形

例如您可以用以下代码画一个红色椭圆:

  1. CustomBase.prototype.paint = function (context, value, x1, y1, a1, b1, style, ctx) {
  2.         if (!context) {
  3.             return;
  4.         }
  5.         if(this.showEffect){
  6.             var a = (a1+2)/2;
  7.             var b = (b1+2)/2;
  8.             var x = a + x1;
  9.             var y = b + y1;
  10.             var ox = 0.5 * a,
  11.                 oy = 0.6 * b;
  12.             context.save();
  13.             context.translate(x, y);
  14.             context.beginPath();
  15.             context.strokeStyle="red";
  16.             context.lineWidth=2;
  17.             context.moveTo(0, b);
  18.             context.bezierCurveTo(ox, b, a, oy, a, 0);
  19.             context.bezierCurveTo(a, -oy, ox, -b, 0, -b);
  20.             context.bezierCurveTo(-ox, -b, -a, -oy, -a, 0);
  21.             context.bezierCurveTo(-a, oy, -ox, b, 0, b);
  22.             context.closePath();
  23.             context.stroke();
  24.             context.restore();
  25.         }
  26.         oldPaint.apply(this, [context, value, x1, y1, a1, b1, style, ctx]);
  27.     };
复制代码
回复 使用道具 举报
LLj
初级会员   /  发表于:2018-12-18 15:19:09
6#
KevinChen 发表于 2018-12-18 14:06
是的,您可以在paint方法中使用ctx随意绘制您需要的图形

例如您可以用以下代码画一个红色椭圆:

context   后面接的的这些方法都是h5的canvas么?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 16:53:34
7#
是的,context调用的都是html5的接口,您可以查阅一下相关资料,

可以简单地实现绘制有规则形状的图形。
回复 使用道具 举报
LLj
初级会员   /  发表于:2018-12-18 17:43:16
8#
哦哦,好的,谢谢
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 18:10:19
9#
LLj 发表于 2018-12-18 17:43
哦哦,好的,谢谢

不客气,本帖我结贴了,您遇到新的问题欢迎发新贴交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部