如何在Handsontable中隐藏特定行。
我在DOM中有按钮,每个按钮都应该隐藏特定的行。 例如:单击“警报”类的按钮应该显示第二列具有值“警报”的所有行。
现在我做的很难看。每个按钮单击我循环我的tableData并删除带有'alarm'的数据然后只加载数据和渲染表。但我无法做到这一点,因为我有一些动态数据,所以在渲染它们的消失之后。
eveGrid.loadData(tableData);
eveGrid.render();
答案 0 :(得分:0)
动态隐藏行是一项非常复杂的任务,Handosntable文档中没有记录。但是,有很多功能可以自己实现它。事实上,我上周必须这样做,所以我可以与你分享一个潜在的方法。它非常简单,与您的解决方案类似,顺便说一句,这并不难看!
您要做的是保留两份数据。第一个我们可以调用data
,第二个调用activeData
。最初,他们都相互平等。现在这部分很棘手,不容易掌握,但你需要确定的是这两个数组是不同的对象,但有相同的参考元素。这意味着数组本身不是clones
,因此相等测试会失败。但是,它们的元素是克隆。您的activeData
元素只是对data
上的元素的引用。
一旦我们完成了这个设置,实现隐藏行就很简单了。您的点击应查看data
,并根据您要显示的匹配行设置新的activeData
。然后用以下内容更新handontable:
hotInstance.updateSettings({data: activeData});
就是这样!请注意,该更新方法将自动触发render()
。
让我知道它是怎么回事,我很想知道其他人是否可以使用这种方法。