当空时输入文本验证

时间:2014-12-02 10:37:49

标签: validation oracle-adf

我有三个相关的文本框。也就是部门,类和子类。当部门填充inputText类时启用,并且当preecho启用类到子类时。使这个过程没有困难。但是,我无法进行当我删除时的反向过程,例如,部门的值应该禁用该类并删除其值。 我不能这样做,因为它是由事件,当它是空的时不会触发新事件,因此不会输入我的其他if。 所有文本框都具有自动提示行为,并且该类取决于所选部门和类的子类。 对于类和子类具有关联的partialtriggers。

输入文本部门的代码是(使用valuechangelistener setdepartment()):

 public void setDepartment(ValueChangeEvent valueChangeEvent) {

        DCIteratorBinding dc2 = (DCIteratorBinding)evaluteEL("#{bindings.ScpClassView1Iterator}");
        ViewObject vo2 = dc2.getViewObject();
        vo2.applyViewCriteria(vo2.getViewCriteriaManager().getViewCriteria("ScpClassViewCriteria"));
        if (it7.getValue() == null) {
            vo2.ensureVariableManager().setVariableValue("P_Dept", null);
        } else {
            String deptIdDesc = valueChangeEvent.getNewValue().toString();
            int indexOfSeparator = deptIdDesc.indexOf("-");
            String deptId = deptIdDesc.substring(0, indexOfSeparator - 1);
            vo2.ensureVariableManager().setVariableValue("P_Dept", deptId);
        }
        vo2.executeQuery();
        if (valueChangeEvent.getNewValue().toString().isEmpty()) {
            getIt8().setDisabled(true);
        }  else {
            getIt8().setDisabled(false);
        } 

1 个答案:

答案 0 :(得分:0)

您是否尝试在调试模式下运行代码并在setDepartment方法中设置断点?它将确认是否在清除部门输入数据时调用setDepartment方法。另外,看看你的代码,我觉得它会在输入为空时抛出异常。  清除数据时,if (it7.getValue() == null)将评估为false,而it7将具有空值。在这里,您需要使用if (valueChangeEvent.getNewValue().toString().isEmpty())