【问题标题】:HandsOnTable - updateSettings with updated mergeCells option is not workingHandsOnTable - 更新了 mergeCells 选项的 updateSettings 不起作用
【发布时间】:2015-09-09 06:08:27
【问题描述】:

我有一个带有mergeCells 选项的 HandsOnTable,在特定事件中我进行了服务器调用,它为我提供了更新的数据,因此也需要更新合并单元格选项。 例如在服务器调用之前,分组是每 5 行,但之后是 4 行。

我使用了hot.updateSettings(hotOptions),其中mergeCells的hotOptions被更新了,但它没有更新设置。

服务器调用前:

var hotOptions =
{
    data: Handsontable.helper.createSpreadsheetData(5,5),
    colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47],
    rowHeaders: true,
    colHeaders: true,
    contextMenu: true,
    mergeCells: [
        {row: 0, col: 0, rowspan: 2, colspan: 2},
        {row: 3, col: 3, rowspan: 2, colspan: 2}
    ]
};
hot = new Handsontable(container, hotOptions);

服务器调用后:

hotOptions.mergeCells = [
    {row: 0, col: 0, rowspan: 3, colspan: 3},
    {row: 0, col: 3, rowspan: 2, colspan: 1}
];
//just to prove that data is updating
hotOptions.colWidths = [100, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47];
hot.updateSettings(hotOptions);

我可以销毁较早的 HOT 实例并使用新选项创建新实例(附加的小提琴就是这样做的),但我想用 updateSettings 实现同样的效果。 更多详情:http://jsfiddle.net/ru53zo3o/1/

【问题讨论】:

标签: handsontable


【解决方案1】:

我想我已经解决了这个问题。

在调用 HOT 实例的 updateSettings 之前,通过将更新后的 mergeCells 数组作为属性传递,使用 Handsontable.MergeCells 对象的新实例更新其 mergeCells 属性。

hotOptions.mergeCells = [{row: 0, col: 0, rowspan: 2, colspan: 3} ];
hot.mergeCells = new Handsontable.MergeCells(hotOptions.mergeCells);
hot.updateSettings(hotOptions);

在这里查看它的工作原理:http://jsfiddle.net/gncb55jp/3/

【讨论】:

  • 有人有更新的解决方案吗? Handsontable.MergeCells 在 6.2 中不适用于我的构造函数
【解决方案2】:

与此同时,您可以在对象数组中跟踪“要合并的单元格”,然后在获得新数据后修改该数组。之后你可以调用render()。绝对是一种解决方法,但如果您需要在等待下一个版本时为任何形式的截止日期做好准备,它会让您度过难关。

【讨论】:

  • 我在 updateSettings 调用后尝试渲染,但它不会更新显示,即它显示具有先前合并单元格设置的数据
猜你喜欢
  • 2013-07-01
  • 2015-04-04
  • 2012-12-21
  • 2013-06-27
  • 2013-10-30
  • 2022-07-29
  • 2014-03-18
  • 2021-11-06
  • 2015-02-11
相关资源
最近更新 更多