[]
        
(Showing Draft Content)

支持数据校验

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

C#示例代码如下:

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

设计器中效果如下:

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

示例代码如下:

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 方法将无法工作。