1

在 Slickgrid 内联编辑中,我们尝试根据一些标准验证数据。但是标准检查需要数据库中的一些修改或现有数据。所以在验证之前将从数据库中获取标准所需的数据。此数据获取过程是异步过程。在此异步过程完成后,将给出数据验证状态。基于该验证状态,我们的自定义验证应该可以工作。正如我们所料。

所以这个场景我们尝试了下面的代码块。但它并没有像我们预期的那样工作。因为异步进程在自定义验证器中不可用。

列定义:

[{
    id:'project_name',
    nameKey:'Project Name',
    field:'project_name',
    sortable: true,
    type: FieldType.string,
    filterable: true,
    filter: {
        model: Filters.compoundInput
    },
    cssClass: 'left-align',
    editor: {
        model: Editors.longText,
        validator: ProjectValidator
    }
}]

自定义验证方法:

ProjectValidator = (value: any, args?: EditorArguments) => {
    let queryTerm = value;
    return this.queryProjects(queryTerm).then(response=>{ // Checking the project name exist in database
        if(response['status']=='ALREADY_EXIST'){
            return { valid: false, msg: 'Entered project name existing in database. Please enter unique project.' };    
        }
        return { valid: true, msg: '' };
    })
}

因此,请指导我在 slickgrid 内联编辑功能中实现此异步自定义验证。

4

0 回答 0