我有三个相关的文本框。也就是部门,类和子类。当部门填充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);
}
答案 0 :(得分:0)
您是否尝试在调试模式下运行代码并在setDepartment方法中设置断点?它将确认是否在清除部门输入数据时调用setDepartment方法。另外,看看你的代码,我觉得它会在输入为空时抛出异常。
清除数据时,if (it7.getValue() == null)
将评估为false,而it7将具有空值。在这里,您需要使用if (valueChangeEvent.getNewValue().toString().isEmpty())