超级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()
方法接受行和列#以及布尔值,但使用此方法需要额外的代码,这些代码应该像传递单个参数一样简单。有没有一种我忽视的方法,或者这是唯一的方法吗?
答案 0 :(得分:1)
以下是关于HOT如何工作的事情:它是一个呈现无状态DOM表的JS对象。这意味着您永远不应该尝试手动修改表格的HTML。即使你确实想要这样做,只要你改变那些绿色细胞,它们就会被重新渲染,而不是绿色。
相反,您希望使用易于访问的自定义渲染器'与每个列或单元格关联的,具体取决于您定义它们的方式。这些应用与data
或columns
定义中的cells
属性类似。它们是功能,这是一个例子:
function greenCellRenderer(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.style.color = 'green';
}
您应该阅读完整的文档,以了解渲染器的全部功能,但从您可以做的事情的论据中可以很清楚。你可以做的一件事是应用你希望的绿色。当然,为了有选择地执行此操作,您可以将渲染器应用于特定单元格,或者使用row
和col
参数将此条件放入此常规渲染器中。
希望有所帮助!