使用Handsontable获取行号

时间:2015-11-22 19:22:29

标签: javascript jquery handsontable

超级noob问题在这里。我有一个行索引数组,我想用它来改变Handsontable行的颜色。我认为HOT会提供一种方法,用tr之类的方法检索表的hot.getRow(5)元素,但它似乎不存在。

简而言之,我正在努力做到这一点

var rowIds = []
$.each(rowIds , function (i, element) {
    var row = hot.getRow(i);
    $(row).closest('tr').css('color','green');
});

我发现我可以使用getCell()方法接受行和列#以及布尔值,但使用此方法需要额外的代码,这些代码应该像传递单个参数一样简单。有没有一种我忽视的方法,或者这是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

以下是关于HOT如何工作的事情:它是一个呈现无状态DOM表的JS对象。这意味着您永远不应该尝试手动修改表格的HTML。即使你确实想要这样做,只要你改变那些绿色细胞,它们就会被重新渲染,而不是绿色。

相反,您希望使用易于访问的自定义渲染器'与每个列或单元格关联的,具体取决于您定义它们的方式。这些应用与datacolumns定义中的cells属性类似。它们是功能,这是一个例子:

function greenCellRenderer(instance, td, row, col, prop, value, cellProperties) {
    Handsontable.renderers.TextRenderer.apply(this, arguments);
    td.style.color = 'green';
}

您应该阅读完整的文档,以了解渲染器的全部功能,但从您可以做的事情的论据中可以很清楚。你可以做的一件事是应用你希望的绿色。当然,为了有选择地执行此操作,您可以将渲染器应用于特定单元格,或者使用rowcol参数将此条件放入此常规渲染器中。

希望有所帮助!