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

QQ登录

只需一步,快速开始

cainiao

注册会员

3

主题

9

帖子

30

积分

注册会员

积分
30
最新发帖
cainiao
注册会员   /  发表于:2018-12-14 13:20  /   查看:3658  /  回复:7
可不可以根据单元格坐标直接给某个单元格设置数据验证不通过时出来的那种红圈。。

7 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-14 17:33:23
推荐
cainiao 发表于 2018-12-14 15:19
哦哦,好的好的,那还有就是验证不通过的时候点击弹出来的信息,那个也可以单独设置给某个文本框吗

您如果采用的是自定义单元格的方式,那么您就需要自己实现所有的验证逻辑,

在这个思路下,您当然可以自己定义提示的方式与内容。

您可以把您提醒的内容,以alert的方式弹出,也可以以模态窗口的方式弹出,

也可以显示到具体的单元格中。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-14 14:15:53
沙发
可以,用自定义单元格类型自己绘制,我发个Demo给您。

CustomCellType_Base.html

2.96 KB, 下载次数: 205

回复 使用道具 举报
cainiao
注册会员   /  发表于:2018-12-14 15:19:23
板凳
KevinChen 发表于 2018-12-14 14:15
可以,用自定义单元格类型自己绘制,我发个Demo给您。

哦哦,好的好的,那还有就是验证不通过的时候点击弹出来的信息,那个也可以单独设置给某个文本框吗
回复 使用道具 举报
cainiao
注册会员   /  发表于:2018-12-17 13:08:16
5#
KevinChen 发表于 2018-12-14 17:33
您如果采用的是自定义单元格的方式,那么您就需要自己实现所有的验证逻辑,

在这个思路下,您当然可以 ...

这个问题暂时解决了,还有个问题要麻烦您,如图,就是上次你告诉我的那个对角线的那个,我设置之后效果是有了,但是背景色没了,是因为被覆盖了吗?应该怎么添加背景色。var myCellType = new MyCellType();sheet.getCell(3,1).cellType(myCellType).value("流入行业, 流出行业");MyCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();
console.log(MyCellType.prototype);
MyCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
    //Paints a cell on the canvas.
    if (!ctx) {
        return;
    }
    ctx.save();
    ctx.beginPath();
    ctx.moveTo(x,y);
    ctx.lineTo(x+w,y+h);
    ctx.stroke();
    ctx.font = style.font;
    var text = value ? value.split(",") : ["",""];
    ctx.fillText(text[0].trim() ,x + w *7/8, y + h/3);
    ctx.fillText(text[1].trim(),x + w /3, y + h*3/4);
    ctx.restore();
};

1.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-17 15:03:35
6#
您好,这个单元格的样式需要您自己绘制,以下代码演示了如何设置背景色为黄色:

  1. MyCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
  2.         //Paints a cell on the canvas.

  3.         if (!ctx) {
  4.             return;
  5.         }
  6.         ctx.save();
  7.         ctx.beginPath();
  8.         ctx.moveTo(x,y);

  9.         ctx.fillStyle = "yellow";
  10.         ctx.fillRect(x,y,w,h);

  11.         ctx.restore();

  12.         var text = value ? value.split(",") : ["",""];
  13.         ctx.fillText(text[0].trim() ,x + w *7/8, y + h/3);
  14.         ctx.fillText(text[1].trim(),x + w /2, y + h*3/4);

  15.         ctx.lineTo(x+w,y+h);
  16.         ctx.stroke();
  17.         ctx.font = style.font;

  18.         ctx.restore();
  19.     };
复制代码
回复 使用道具 举报
cainiao
注册会员   /  发表于:2018-12-19 13:33:27
7#
KevinChen 发表于 2018-12-17 15:03
您好,这个单元格的样式需要您自己绘制,以下代码演示了如何设置背景色为黄色:

谢谢,解决了
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-19 14:07:33
8#

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