输入文本验证何时为空

输入文本验证何时为空

问题描述:

我有三个依赖文本框。即部门,班级和子类别。当部门填写inputText的类是启用的,并且当preecho将子类启用时。为了使这个过程没有困难。但是,我不能做出我删除时的逆向过程,例如,部门的值应该禁用类并删除它的值。 我无法做到这一点,因为它是由事件,当它是空的不会触发新的事件,因此不会进入我的其他人,如果。 所有文本框都具有自动建议行为,该类取决于选定的部门和类的子类。 对于类和子类都有关联的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); 
     } 
+0

为我们提供了更好的解决方案的源代码.. – Sarath 2014-12-02 10:41:13

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

+0

Amishra,我使用这个if(it7.getValue()== null || it7.getValue()。equals(“”)|| it7.getValue()。toString()。isEmpty())和工作。非常感谢你。对我来说非常重要。 – 2014-12-02 18:44:19

+0

然后批准答案;) – 2014-12-03 07:57:25