Javascript 将可手持单元绑定到复杂对象

Javascript 将可手持单元绑定到复杂对象,javascript,handsontable,Javascript,Handsontable,我正在尝试使用一些基本的编辑和数字格式 数据(包括格式信息)是从服务器获取的,看起来与此类似: var data = [ [ { num:'1.1', color:'red' }, { num:'2.2', color:'green' } ], [ { num:'3.4', color:'yellow' }, { num:'4.4', color:'blue' } ] ]; 现在,我想将此数据传递到我的手持触摸屏,并让每个单元格显示/编辑.num值。通过使用自定义渲染器和编辑器

我正在尝试使用一些基本的编辑和数字格式

数据(包括格式信息)是从服务器获取的,看起来与此类似:

var data = [
    [ { num:'1.1', color:'red' }, { num:'2.2', color:'green' } ],
    [ { num:'3.4', color:'yellow' }, { num:'4.4', color:'blue' } ]
];
现在,我想将此数据传递到我的
手持触摸屏
,并让每个单元格显示/编辑
.num
值。通过使用自定义渲染器和编辑器(此处简要说明:),我找到了一个处理手动编辑的解决方案-请参阅以下JSFIDLE:

但是,此解决方案存在两个问题:

  • 粘贴值(例如,来自Excel)无法按预期工作-粘贴的值完全覆盖绑定对象,而不是更新其
    .num
    属性
  • 数值验证不起作用-如果我将
    类型:“Numeric”
    添加到
    单元格属性
    ,第一个编辑的单元格将不会退出“编辑模式”,并且无法编辑更多的单元格
我走对了吗?如果是,我如何解决这两个问题?如果没有,是否有一种更简单(内置?)的方式将单元格绑定到自定义对象


(我知道可以将整行绑定到自定义对象,但我还没有找到单个单元格的解决方案)

自定义单元格渲染:

在Hand On Table设置中,可以添加以下内容,以显示num和颜色作为对象的背景色:

renderer: function(instance, td, row, col, prop, value, cellProperties) {
  if(value){
    td.innerHTML = value.num;
    td.style.backgroundColor = value.color;
  }
  return td;
},

听起来您可以设置自定义编辑器,如果没有,这里有说明:

我不知道如何用这个从excel粘贴,至少自定义编辑器只需要一个参数。无论如何,只有一个来自excell。也许使用钩子将是一个很好的方法来进行调查。此外,可能希望首先扩展上述文档中解释的默认编辑器,而不是完整的自定义编辑器


将类型设置为numeric不起作用,因为它需要的是数字而不是自定义对象。“类型”预定义了一组渲染器、编辑器和验证器,如您在文档中找到的示例所示:

 {
  renderer: Handsontable.NumericRenderer,
  editor: Handsontable.editors.TextEditor,
  validator: Handsontable.NumericValidator
}

请参阅JSFIDLE(问题中的链接)。渲染器和编辑器按预期工作。不起作用的是验证和粘贴值。@Sphinxxx检查这是我为我的一个类似问题找到解决方案的方法。@NaushadKM-基本上,对于每一行,您将自定义对象放入临时“行对象”的
.colXX
属性中,然后让HOT’s standard完成其余工作?我真的很喜欢这个解决方案!如果你回答了,你会得到一个复选标记:)