如何针对特定方案禁用CustomValidator

时间:2014-02-28 11:00:15

标签: java validation gwt smartgwt

我有一个表单,当我们尝试添加记录(PARAMETER, VALUE)时,它会使用CustomValidator来检查非空字段 我正在寻找一种方法来在我尝试删除时禁用表单验证(如果用户改变主意并且不再需要添加,则用户可以删除空的listGridRecord。)

我正在使用这个自定义验证器:

    CustomValidator validatorParameter = new CustomValidator() {

        @Override
        protected boolean condition(Object value) {

            parameterName = (String) value;
            if ((value == null || ((String) value).trim().isEmpty())) {
                rowIsValidate = false;
                return false;
            } else {
                rowIsValidate = true;
                return true;
            }
        }
    };

我用这种方式设置init()方法:

parametersListGrid.getField(PARAMETER).setValidators(validatorParameter);

每当我检测到点击“删除”按钮并以这种方式使用时,我就尝试设置标记“noValidation”为真:

CustomValidator validatorParameter = new CustomValidator() {

        @Override
        protected boolean condition(Object value) {

            parameterName = (String) value;
            if (((value == null || ((String) value).trim().isEmpty())) && !noValidation){
                rowIsValidate = false;
                return false;
            } else {
                rowIsValidate = true;
                return true;
            }
        }
    };

但我发现这个标志是在验证发生后稍后设置的 rowIsValidate保持为false,如果验证后显示错误,我们无法删除空记录;

有关如何在删除方案中通过此验证步骤的任何想法吗?

1 个答案:

答案 0 :(得分:0)

在删除记录之前调用discardEdits(rowNum)

SmartClient Forums上提出同样的问题。