可操作的复杂数据和剪贴板

Posted

技术标签:

【中文标题】可操作的复杂数据和剪贴板【英文标题】:handsontable Complex data and clipboard 【发布时间】:2015-11-23 17:16:37 【问题描述】:

是否有可能复制 HOT 数据的渲染版本?

我的情况和数据:

每一行看起来像:

[ number, number, ..., object simpleValue : number, extraData : data , number, number, ... ]

行是简单数字和“扩展数据”对象的组合。 “扩展数据对象”由自定义渲染函数渲染为“simpleValue”属性中的数字(工作正常)。还为包含调用 DisplayExtData 函数的扩展对象的 TD 注册了一个 onClick 事件。

当我选择所有显示的数据 (CTRL+A) 并将它们复制到剪贴板 (CTRL+C) 时,出现了第一个问题。而不是只包含数字的副本,我在表格中显示“simpleValue”的文本呈现的地方得到了[对象对象]。所以用户不会得到他所看到的渲染,但可能会得到数据的内部表示。

这个问题最简单的解决方案就是预处理数据并将对象转换为“simpleValues”,然后再将它们推入HoT。但我需要(以某种方式)指向原始扩展数据对象的链接,因为我需要在 TD click 上显示这些扩展数据。

(我的第一个解决方案是将对象转换为 JSON,将其保存到隐藏的文本区域中,其中包含带有 onClick 事件等的“simpleValue”属性的可见标签标签,但是这个解决方案在上述主要问题上失败了,因为我得到了 json 和剪贴板中的 textarea 标签复制了文本。)

【问题讨论】:

【参考方案1】:

知道了:

1) 覆盖我的“扩展数据对象”的 toString 方法以返回我想要呈现的任何属性:

ExtData.prototype.toString = function()return this.value;;

2) 自定义渲染器渲染 value.toString() 并保留对象,因此可以将 onClick 事件添加到 TD,如下所示:

td.onclick = function()ShowExtData(value);;

(其中 value 是我的 ExtData 对象)。

从 HoT 复制的文本包含与显示的完全相同的文本,已解决。

【讨论】:

你有 ShowExtData() 的例子吗?

以上是关于可操作的复杂数据和剪贴板的主要内容,如果未能解决你的问题,请参考以下文章

HarmonyOS之剪贴板的功能分析和使用流程

HarmonyOS Sample 之 Pasteboard 分布式粘贴板

dataTransfer 对象

JS处理剪贴板

Flutter 无法从剪贴板读取

使用 windows 剪贴板对多个自定义剪贴板进行编程 - 一些复杂性