有没有办法使用 loaddata 在 handsontable 中加载单元元数据?
Is there a way to load cell metadata in handsontable using loaddata?
我将 handsontable 用作使用 lokijs 的单独后端数据存储的或多或少的 gui。我的 lokijs 数据存储有行、列、数据和一些元数据。
用户可以采取一些操作来调整数据库并重新加载页面。我有一个函数可以将 lokijs 存储转换为二维数组并对其调用 loadData,从而刷新用户看到的页面。
问题:用户可以将单元格标记为 'invalid',这会将单元格变为红色并使用 'invalid = true' 布尔值更新 lokijs 数据库。用户还可以隐藏列。在后端,这通过创建一个排除所选列并调用 loaddata 的新二维数组来刷新 handsontable。
但是,隐藏单元格不适合列颜色。我给单元格上色的方式是这样的:
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/2/18 开始,这是不可能的:(
我将 handsontable 用作使用 lokijs 的单独后端数据存储的或多或少的 gui。我的 lokijs 数据存储有行、列、数据和一些元数据。
用户可以采取一些操作来调整数据库并重新加载页面。我有一个函数可以将 lokijs 存储转换为二维数组并对其调用 loadData,从而刷新用户看到的页面。
问题:用户可以将单元格标记为 'invalid',这会将单元格变为红色并使用 'invalid = true' 布尔值更新 lokijs 数据库。用户还可以隐藏列。在后端,这通过创建一个排除所选列并调用 loaddata 的新二维数组来刷新 handsontable。
但是,隐藏单元格不适合列颜色。我给单元格上色的方式是这样的:
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/2/18 开始,这是不可能的:(