从 javascript 中隐藏 handsontable 列
Hiding columns of handsontable from javascript
有什么方法可以隐藏 javascript 中的 HOT 列?
要求是要隐藏的列将作为参数出现在 javascript 中,并且相应的列将相应地显示隐藏。
HOT 有 rowHeaders 和 colHeaders,数据有 20 列。
请指教
过时的解决方案
好的,我找到了一个可能的解决方案。我在自己的系统上测试过,其实很简单。
您应该在 columns
选项中使用 customRenderer
。如果您还没有,请阅读此内容。这个想法是你给每个单元格它自己的渲染器。在此自定义函数中,您可以执行以下操作:
var colsToHide = [3,4,6]; // hide the fourth, fifth, and seventh columns
function getCustomRenderer() {
return function(instance, td, row, col, prop, value, cellProperties) {
if (colsToHide.indexOf(col) > -1) {
td.hidden = true;
} else {
td.hidden = false;
}
}
}
此渲染器所做的是隐藏 var colsToHide
指定的单元格。您现在要做的就是添加一个 DOM 元素,让用户选择哪个元素,因此每次呈现 table 时(这基本上发生在任何更改之后,或者需要手动触发),指定的列将被隐藏,使 data
数组保持完整,如您所述。当不在 colsToHide
中时,它们会被重新渲染,因此请确保您也能正常工作。
这里我实现了非常基本的功能。只需在输入字段中输入列的索引,然后就可以看到奇迹发生了。
http://jsfiddle.net/zekedroid/LkLkd405/2/
更好的解决方案:
有什么方法可以隐藏 javascript 中的 HOT 列? 要求是要隐藏的列将作为参数出现在 javascript 中,并且相应的列将相应地显示隐藏。
HOT 有 rowHeaders 和 colHeaders,数据有 20 列。
请指教
过时的解决方案
好的,我找到了一个可能的解决方案。我在自己的系统上测试过,其实很简单。
您应该在 columns
选项中使用 customRenderer
。如果您还没有,请阅读此内容。这个想法是你给每个单元格它自己的渲染器。在此自定义函数中,您可以执行以下操作:
var colsToHide = [3,4,6]; // hide the fourth, fifth, and seventh columns
function getCustomRenderer() {
return function(instance, td, row, col, prop, value, cellProperties) {
if (colsToHide.indexOf(col) > -1) {
td.hidden = true;
} else {
td.hidden = false;
}
}
}
此渲染器所做的是隐藏 var colsToHide
指定的单元格。您现在要做的就是添加一个 DOM 元素,让用户选择哪个元素,因此每次呈现 table 时(这基本上发生在任何更改之后,或者需要手动触发),指定的列将被隐藏,使 data
数组保持完整,如您所述。当不在 colsToHide
中时,它们会被重新渲染,因此请确保您也能正常工作。
这里我实现了非常基本的功能。只需在输入字段中输入列的索引,然后就可以看到奇迹发生了。
http://jsfiddle.net/zekedroid/LkLkd405/2/
更好的解决方案: