我想按不同类别过滤我的数据数组。它正在工作,但是应该选择多个类别的行。如果选中了多个复选框。如何实现此代码?
这是我的代码:
check_18650 = function() {
if (document.getElementById("checkbox_18650").checked == true) {
view.setRows(data.getFilteredRows([{column:2, value: '18650'}]));
dashboard.draw(view)}
else {
view.setRows(data.getFilteredRows([{column:2}]));
dashboard.draw(view);
}
}
check_pouch = function() {
if (document.getElementById("checkbox_pouch").checked == true) {
view.setRows(data.getFilteredRows([{column:2, value: 'pouch'}]));
dashboard.draw(view);
}
else if (document.getElementById("checkbox_18650").checked == true && document.getElementById("checkbox_pouch").checked == true) {
view.setRows(data.getFilteredRows([{column:2, value: 'pouch'}]));
view.setRows(data.getFilteredRows([{column:2, value: '18650'}]));
dashboard.draw(view);
}
else {
view.setRows(data.getFilteredRows([{column:2}]));
dashboard.draw(view);
}
}
当过滤多个值时,您将需要将它们合并到一个过滤器设置中。数据视图将不允许您在同一列上使用多个过滤器。
在这种情况下,您可以使用test
回调函数,而不是value
键。
这里,一个数组用于收集值,和test
回调以过滤列...
check_pouch = function() {
var values = [];
if (document.getElementById("checkbox_pouch").checked == true) {
values.push('pouch');
}
if (document.getElementById("checkbox_18650").checked == true) {
values.push('18650');
}
if (values.length > 0) {
view.setRows(data.getFilteredRows([{
column:2,
test: function (value) {
return (values.indexOf(value) > -1);
}
}]));
}
dashboard.draw(view);
}