1

我有一个函数可以处理一些onChange事件并且运行良好。该函数调用另一个函数来检查单元格的内容,如果有问题,它应该更改单元格的颜色。

function Check(x, y)
{
    var content =   $editorTableContainer.handsontable('getDataAtCell', y, x);
    var split   =   content.split(' ');    

    $.each(split, function (key, value) {
        $.get('check.php?word=' + value, function (data) {
            //blank if no error otherwise it returns an array of suggestions (only need to check if there is an error)
            if (data) {
                alert("test");
                var meta = $editorTableContainer.handsontable('getCellMeta', y, x);
                meta.renderer = ErrorRenderer;
            }
        });
    });

    return;
}

这是我的简单ErrorRenderer:

function ErrorRenderer(instance, td, row, col, prop, value, cellProperties)
{
  Handsontable.TextCell.renderer.apply(this, arguments);
  console.log(row);
  td.style.fontWeight = 'bold';
  td.style.color = 'green';
  td.style.background = '#CEC';
}

ErrorRenderer 永远不会被调用,即使触发了警报,知道为什么吗?

谢谢

4

2 回答 2

1

如果您使用的是handsontable,为什么不使用它的内置功能呢?

看看 HTs条件格式

此外,在 0.9.5 版本中添加了一个列选项validator。详情在这里

validator (value: Mixed, callback: Function) 

或者

validator : RegExp Object

然后使用事件(详情请点击此处):

afterValidate (isValid: Boolean, value: Mixed, row: Number, prop: String, source: String) 

进行单元格的格式化

另外,在您的示例中,您正在设置渲染器,但是单元格实际上是在渲染的吗?需要重新渲染吗?

于 2013-07-22T00:19:20.390 回答
0

我可以看到您的渲染器适用于 TextCell.. 它仅适用于文本单元格,检查错误渲染器是否适用于 TextCell 或 NumericCell

于 2013-11-21T05:20:15.277 回答