Handsontable - 隐藏特定行(按单元格值)

时间:2015-08-13 13:08:15

标签: javascript html css html-table handsontable

如何在Handsontable中隐藏特定行。

我在DOM中有按钮,每个按钮都应该隐藏特定的行。 例如:单击“警报”类的按钮应该显示第二列具有值“警报”的所有行。

现在我做的很难看。每个按钮单击我循环我的tableData并删除带有'alarm'的数据然后只加载数据和渲染表。但我无法做到这一点,因为我有一些动态数据,所以在渲染它们的消失之后。

eveGrid.loadData(tableData);
eveGrid.render();

1 个答案:

答案 0 :(得分:0)

动态隐藏行是一项非常复杂的任务,Handosntable文档中没有记录。但是,有很多功能可以自己实现它。事实上,我上周必须这样做,所以我可以与你分享一个潜在的方法。它非常简单,与您的解决方案类似,顺便说一句,这并不难看!

您要做的是保留两份数据。第一个我们可以调用data,第二个调用activeData。最初,他们都相互平等。现在这部分很棘手,不容易掌握,但你需要确定的是这两个数组是不同的对象,但有相同的参考元素。这意味着数组本身不是clones,因此相等测试会失败。但是,它们的元素是克隆。您的activeData元素只是对data上的元素的引用。

一旦我们完成了这个设置,实现隐藏行就很简单了。您的点击应查看data,并根据您要显示的匹配行设置新的activeData。然后用以下内容更新handontable:

hotInstance.updateSettings({data: activeData});

就是这样!请注意,该更新方法将自动触发render()

让我知道它是怎么回事,我很想知道其他人是否可以使用这种方法。