我遇到的情况是,我必须根据少数条件在单元格中添加不同的渲染器。因此,解决此问题我已经完成了以下步骤;
makeHighlight(rowNum,colNum, highlightFor = '')
{
var root = this;
handsOnTable.updateSettings({
cells: function (row, col) {
var cellProperties = {};
//if for row never cell property set means
sheetConfig.cellProperties[row] == undefined
if(sheetConfig.cellProperties[row] == undefined)
sheetConfig.cellProperties[row] = [];
//If row number and column number matches
if (row == rowNum && col == colNum) {
if(highlightFor == 'condition1')
{
cellProperties = {
type : {
renderer : root.renderer1
}
}
sheetConfig.cellProperties[row][col] = cellProperties;
}
if(highlightFor == 'condition2')
{
cellProperties = {
type : {
renderer : root.renderer2
}
}
sheetConfig.cellProperties[row][col] = cellProperties;
}
if(highlightFor == 'condition3')
{
cellProperties = {
type : {
renderer : root.renderer3
}
}
sheetConfig.cellProperties[row][col] = cellProperties;
}
}
else
{
if(sheetConfig.cellProperties[row][col] != undefined)
{
cellProperties = sheetConfig.cellProperties[row][col];
}
}
return cellProperties;
}
});
}
现在我的渲染器功能是;
renderer1(instance, td, row, col, prop, value,cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
//td.style.background = '#ffff00';
td.style.background = '#ffff0091';
};
renderer2(instance, td, row, col, prop, value,cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.style.background = '#FF9999';
};
renderer3(instance, td, row, col, prop, value,cellProperties)
{
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.style.background = '#FFFF33';
};
现在的问题是我收到错误消息;
未捕获的错误:单元格类型必须是字符串
您能帮我解决我做错了什么吗?我正在设法弄清楚,但还是没有运气。
任何帮助对我都很好。
谢谢。