有没有办法使用loaddata在handsontable中加载单元格元数据?

时间:2017-12-29 21:22:20

标签: javascript handsontable

我使用handontable作为或多或少的gui用于使用lokijs的单独后端数据存储区。我的lokijs数据存储区有行,列,基准和一些元数据。

用户可以采取一些调整db并重新加载页面的操作。我有一个函数将lokijs存储转换为2d数组,并在其上调用loadData,刷新用户看到的页面。

问题:用户可以将单元格标记为“无效”,这会将单元格变为红色,并使用' invalid = true'更新lokijs数据库。布尔值。用户还可以隐藏列。在后端,通过创建一个排除所选列的新二维数组并调用loaddata来刷新handontable。

但是,隐藏单元格不会对列颜色起到很好的作用。我对单元格进行着色的方式如下:

    cells: function (row, col, prop) {
        var cellProperties = {};
        var cell = cells.findOne({ "col": {"$eq": col}, "row": {"$eq": row}});

        if (cell.invalid === true) {
            cellProperties.renderer = highlightRowRenderer; //colors red
        }
    return cellProperties;

您可能会在此处看到问题 - 如果隐藏了某列,则在突出显示时会出现一个错误,因此不同的单元格会隐藏在突出显示上。

现在解决此问题的方法是加载数据,将突出显示信息作为元数据传递。不幸的是,我无法弄清楚如何做到这一点。我想象它看起来像这样:

var data = 
  [
    [ { data: 5, color: red }, { data: 7, color: blue} ], 
    [ { data: 3, color: green}, { data: 2 } ] 
  ];
hot.loadData(data);

但我不确定它到底是什么。似乎有一个类似的问题here,但它似乎只处理非动态大小的表。

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

截至1/2/18,这是不可能的:(