【问题标题】:Tabulator: How to get multiline data on separate rows制表符:如何在单独的行上获取多行数据
【发布时间】:2020-05-19 17:00:01
【问题描述】:

我有一个带有键/值对的对象,其中值在数组中以逗号分隔。
例如

var myObject = { key1 : [v11, v12, v13, v14] , key2 : [v21, v22, v23, v24]};

我现在的工作是将键作为列标题和单行中的所有数组值。行数据显示为逗号分隔。 我有一个 mutator 将 "," 转换为 "\n" ,然后转换行数据并仍然显示在单行中,尽管在不同的行上。

我需要的是在单独的行上显示每个数组中的每个值,就像在 excel 中一样。并且(如果可能的话)合并对应值行的键行。

这里是相关代码

<script>
    //converts comma to newline
var customMutator = function(value, data, type, params, component){
    return value.join("\n");
}
             var tableData = [
             {id:1, key:"key1", values: ["v11", "v12", "v13", "v14"]},
             {id:1, key:"key2", values: ["v21", "v22", "v23", "v24"]},
             ];
 var table = new
Tabulator("#example-table", {
             data:tableData,
             columns:[
             {title:"key", field:"key", formatter:"textarea"},
             {title:"values",field:"values", formatter:"textarea", mutator:customMutator,},
             ],
         });
 </script>

【问题讨论】:

  • 数据加载后是否需要编辑,还是只是为了查看?
  • @nrayburn-tech - 目前仅供查看。谢谢。
  • 自定义格式化程序可能是最简单的事情。您将为数组中的每个值创建一个带有边框的 div。我会看看我是否可以为你创建一个例子。 “合并对应值行的键行”是什么意思?
  • 如 excel 示例所示,我想为对应的“v11-v14”设置一个“key1”。但我猜制表器正在这样做,因为它可以容纳在单行中。

标签: javascript tabulator


【解决方案1】:

因为您只对查看数据而不是对其进行编辑感兴趣,所以最简单的事情是自定义格式化程序。 (如果您需要编辑该格式的数据,那么我目前不知道该怎么做。)

您的自定义格式化程序将为您的值数组中的每个项目创建一个带有边框的元素。这是您可以使用的自定义格式化程序的示例。

function customFormatter(cell, formatterParams, onRendered) {
    const val = cell.getValue();
    const cellDiv = document.createElement('div');
    for (let i = 0; i < val.length; i++){
        const valItemDiv = document.createElement('div');
        valItemDiv.textContent = val[i];
        valItemDiv.style.border = 'purple 1px solid';
        cellDiv.appendChild(valItemDiv);
    }
    return cellDiv;
}

这是一个完整的工作示例。 https://jsfiddle.net/nrayburn/sqdvkm5u/11/

【讨论】:

  • 它适用于给定的问题,但是,我注意到它弄乱了分页。我有实际数据,其中每个键的值可以是 50+(有时)。在这种情况下,分页不能按分页工作,它仍然算一行。现在我已经关闭了分页,直到我想出别的东西。谢谢。
  • 好吧,就 Tabulator 而言,每个 key 是一行。我不确定是否有办法进行行分组,这正是您所要求的。开发者 Oli 可能有一些想法或能够提供一些反馈,如果他看到的话。
  • 更新:在这种情况下,滚动选项比分页效果更好。所以我改用了。
猜你喜欢
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
相关资源
最近更新 更多