复制渲染值而不是数据值

时间:2017-11-13 18:47:09

标签: handsontable

我使用Handsontable,在一列中,数据类型是一个整数,它是字符串v向量的索引。因此,我必须显示v [i]而不是显示整数索引i。我是通过手动声明自定义渲染器来实现的:

var annotationTableSettings = {
        data: componentAnnotation,
        columns: [
            {renderer: annotationId2StringRenderer},
             ...

但是,当我复制单元格的值(在Windows中的Ctrl + c或mac中的cmd + c)时,将复制整数而不是渲染值。有谁知道如何复制渲染值(我想保留整数数据类型和自定义渲染器)。

这里可以看到一个例子:http://leoisl.gitlab.io/DBGWAS_support/full_dataset_visualization_0_4_6/components/comp_2.html 只需复制第一个表格第一行的第一个单元格(在北面板中) - 值为"(Phe)CML"你将复制值3,而不是"(Phe)CML"本身。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用beforeCopy钩子。

var annotationTableSettings = {
    data: componentAnnotation,
    beforeCopy: data => {
        for (let i = 0; i < data.length; i++) {
            for (let j = 0; j < data[i].length; j++) {
                if (!isNaN(data[i][j])) {
                    data[i][j] = v[data[i][j]]
                }
            }
        }
    }
    columns: [
        {renderer: annotationId2StringRenderer},
        ...