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完成其余工作?我真的很喜欢这个解决方案!如果你回答了,你会得到一个复选标记:)