首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动Handsontable中的列后编辑单元格时,数据不正确

移动Handsontable中的列后编辑单元格时,数据不正确
EN

Stack Overflow用户
提问于 2016-10-03 16:52:27
回答 1查看 373关注 0票数 0

我在测试手柄的一个手柄,在移动列时发现了这个问题。请到下面的小提琴,并执行上述步骤。http://jsfiddle.net/5u5vczcg/

代码语言:javascript
复制
var hot = new Handsontable(container, {
  data: financeData,
  colHeaders: ["Price", "Date", "1D Chg", "YTD Chg", "Vol BTC"],
  rowHeaders: true,
  stretchH: 'all',
  sortIndicator: true,
  columnSorting: true,
  contextMenu: true,
  manualColumnMove : true,
  columns: [
    {type: 'numeric', format: '$0,0.00'},
    {type: 'date', dateFormat: 'DD/MM/YYYY', correctFormat: true},
    {type: 'numeric', format: '0.00%'},
    {type: 'numeric', format: '0.00%'},
    {type: 'numeric', format: '0.00'}
  ]
});

移动列价格以代替日期。双击任何价格单元格,您将看到单元格中的值仅为日期。另外,当您双击日期单元格时,它们也不会正确显示数据。请您检查一下并解决一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 12:40:22

你在这上面面对的应该是一个很老的固定发行。经过几次测试/研究后,如果我激活了manualColumnMove选项,那么我的项目确实有相同的行为。

所以,我建议你们从这两种解决方案中选择一种:

  1. 重新打开最新版本的Handsontable在git上的问题。
  2. 使用旧版本和我为您做的解决方法(0.15.0版):

你的JS Fiddle

我认为您可以从这个开始,并了解如何自定义您的Handsontable。对于您的情况,我所做的是用事件'afterColumnMove‘更新两个修改过的列:

代码语言:javascript
复制
hot.addHook('afterColumnMove', function(sourceIndex, targetIndex) {
  var
  sourceValues = hot.getData(0,sourceIndex,hot.getData().length,sourceIndex),
  sourceProperties =hot.getSettings().columns[sourceIndex],
  sourceHeader=hot.getSettings().colHeaders[sourceIndex],
  targetValues = hot.getData(0,targetIndex,hot.getData().length,targetIndex),
  targetProperties =hot.getSettings().columns[targetIndex],
  targetHeader=hot.getSettings().colHeaders[targetIndex],

  newColumns=hot.getSettings().columns,
  newHeaders=hot.getSettings().colHeaders;

  newHeaders[sourceIndex]=targetHeader;
  newHeaders[targetIndex]=sourceHeader;
  newColumns[sourceIndex]=targetProperties;
  newColumns[targetIndex]=sourceProperties;

  hot.updateSettings({columns:newColumns,colHeaders:newHeaders});
  hot.populateFromArray(0,sourceIndex,sourceValues,hot.getData().length,sourceIndex);
  hot.populateFromArray(0,targetIndex,targetValues,hot.getData().length,targetIndex);
});

然而,还有第三种选择:

  1. 再用点别的。根据您的预算,编辑器版本的DataTables是IMHO您可以使用的最好的东西,在您尝试编辑您的数据和使用其他函数时,它看起来很好看,但是包含了许多剩余的bug。(这个问题就是最好的例子)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39836593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档