从javascript隐藏handontable的列

时间:2015-01-02 12:07:55

标签: handsontable

有什么方法可以隐藏javascript中的HOT列吗? 要求是隐藏的列将作为javascript中的参数出现,并且相应的列将相应地显示隐藏。

HOT有rowHeaders和colHeaders,数据有20列。

请告知。

1 个答案:

答案 0 :(得分:3)

外包解决方案

好的,我找到了一个可能的解决方案。我在自己的系统上测试了它,但实际上非常简单。

您应该在customRenderer选项中使用columns。如果您还没有,请阅读相关内容。我们的想法是为每个单元格提供自己的渲染器。在这个自定义函数中,您可以执行以下操作:

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元素,让用户选择哪个等等每次表格被渲染(基本上在任何更改之后发生,或者需要手动触发),指定列中的单元格将被隐藏,保持像你描述的那样,data数组完整无缺。当不在colsToHide时,它们会被重新渲染,所以请确保你也能正常工作。

这里我用非常基本的功能实现了它。只需在输入字段中输入列的索引,然后观察魔法发生。

http://jsfiddle.net/zekedroid/LkLkd405/2/

更好的解决方案handsontable: hide some columns without changing data array/object