HandsOnTable (Vue Wrapper) - 将行与数据库 ID 关联?

Posted

技术标签:

【中文标题】HandsOnTable (Vue Wrapper) - 将行与数据库 ID 关联?【英文标题】:HandsOnTable (Vue Wrapper) - Associate row with database id? 【发布时间】:2020-10-18 15:22:53 【问题描述】:

我正在通过 Vue 包装器试用 HandsOnTable 来制作一个简单的数据库编辑器。我可以轻松地填充表格,但是我现在需要将更改保存回数据库。

如果我使用 afterChange() 方法,hot 会给我单元格中已更改的更改,但是我需要能够将这些更改与数据库 id 相关联以将它们发送回服务器。关于如何做到这一点的任何想法,以及是否有可能获得与行相关的更改?是否也可以在不向表中的用户显示数据库 ID 的情况下执行此操作?

【问题讨论】:

【参考方案1】:

要回答您的主要问题,您可以将元数据与单元格相关联。因此,您可以将您的技术 ID 例如放在第一列或隐藏列(或任何您想要的位置)。

hot.setCellMeta(0, 0, 'myIdName', 'myIdValue');

其中“热”是您的 Handsontable 实例。 (documentation reference)

然后您可以访问getCellMeta(0, 0)


第二个问题:

还有可能获取与行相关的更改吗?

您已经可以通过过滤afterChange 挂钩中的更改来获取特定行的更改。获取the example from Handsontable 文档,这就是您获得该行的方式:

new Handsontable(element, 
  afterChange: (changes) => 
    changes.forEach(([row, prop, oldValue, newValue]) => 
      // Some logic...
    );
  
)

如您所见,changes 是一个包含 row 和 col (prop) 的更改数组。

希望这会有所帮助。

【讨论】:

以上是关于HandsOnTable (Vue Wrapper) - 将行与数据库 ID 关联?的主要内容,如果未能解决你的问题,请参考以下文章

getSourceData(), afterchange Handsontable js vue

handsontable基础使用

各位大佬我在vue+nuxt项目中用handsontable表格插件时,总是报navigator is not defined错误,求解?

Handsontable 中更新内容数据的问题

vuejshandsontable官方及调用handsontable方法

Handsontable Basics