Skip to content

支持数据校验

可以通过实现 ISupportDataValidation 接口与活字格原生数据校验功能集成

C#示例代码如下

csharp
    public class MyPluginCellType : CellType, ISupportDataValidation
    {
        public DataValidationLink DataValidationLink { get; set; }
    }

设计器中效果如下

1669818418134-96007a55-e0cb-4f81-a9b4-f551ef7fe390.png

在JavaScript中,可以通过 validate 方法触发校验,通过 hideValidateTooltip 隐藏校验失败的信息。

示例代码如下

javascript
class MyPluginCellType extends Forguncy.Plugin.CellTypeBase {
    createContent() {
        this.input = $("<input style='width:100%;height:100%'>");
        this.input.attr("id", this.ID); // 必须设置ID,否则hideValidateTooltip不工作
        this.input.change(() => {
            this.commitValue();
        })
        this.input.blur(() => {
            this.validate(); // 丢失焦点时触发数据校验
        })
        this.input.on("input",() => {
            this.hideValidateTooltip(); // 用户修改值时隐藏出错Tooltip
        })
        return this.input;
    }
    setValueToElement(_, value) {
        this.input.val(value?.toString());
    }
    getValueFromElement() {
        return this.input.val();
    }
}
Forguncy.Plugin.CellTypeHelper.registerCellType("MyPlugin.MyPluginCellType, MyPlugin", MyPluginCellType);

注意,Tooltip是挂到标注了 ID 的Dom上的,所以 this.input.attr("id", this.ID); 这句代码是必须加上的,否则hideValidateTooltip 方法将无法工作。

更新: 2022-12-30 09:06:47
原文: https://www.yuque.com/robert-bh51n/ea8l6c/pc0adxuupoz7mcaw