Tabulator的自定义格式化器会禁用编辑器

编程语言 2026-07-10

我正在使用Tabulator v4.9

我创建了一个自定义格式化器,用来在单元格处于某个区间内时对背景进行着色。格式化器能工作,问题是我再也无法编辑单元格的内容。据我所知,这些东西不应该互相影响。

以下是我的columnStyle的部分:

{
   "title":"Pct",
   "field":"Pct",
   "editor":true,
   "headerSort":false,
   "validator":[
      "required",
      "integer",
      "min:0",
      "max:100"
   ],
   "formatter":inRangeColor,
   "formatterParams":{
      "lowColor":"#9DE2FA",
      "highColor":"#FF8457"
   }
}

以下是我的格式化器:

let inRangeColor = function (cell, formatterParams, onRendered) {
    let value = cell.getValue();
    let min = cell.getData().PctMin;
    let max = cell.getData().PctMax;

    if (value < min) {
        cell.getElement().style.backgroundColor = formatterParams.lowColor;
    }
    else if (value > max) {
        cell.getElement().style.backgroundColor = formatterParams.highColor;
    }

    return value;
}

感谢任何见解。

解决方案

"Editor: true" 不能与自定义格式化器一起使用。如果editor的值为true,Tabulator会尝试自动选择合适的内置编辑器,但在使用自定义格式化器时无法做到这一点,导致无法编辑。相反,必须指定要使用的编辑器。

就我的情况,我使用了 "input"。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章