如果未选择穿梭中的值,如何使文本字段只读

时间:2014-09-23 02:35:41

标签: oracle-adf jdeveloper

我有一个文本字段,如果从航天飞机中选择了一个值,可以不读它(可以选择许多选项)。我正在使用Jheadstart来创建页面,但adf解决方案的工作方式与我只能将该更改插入到ta模板中一样。通常我会使用绑定并选择另一个字段的输入值,但我不确定是什么选择班车作为班车可以有很多选择。

1 个答案:

答案 0 :(得分:0)

要从bean内的shuttlebox获取值:

BindingContainer myBC = this.getBindings();
JUCtrlListBinding listBinding = (JUCtrlListBinding)myBC.get("ViewObject1"); //viewObject that populates the shuttflebox
Object str[] = listBinding.getSelectedValues();
if(str.length>0)
    isTextBoxDisabled=false;
else
    isTextBoxDisabled=true;

然后将inputtext的Disabled属性绑定到myBean.isTextBoxDisabled

这需要一个页面提交才能激活,所以我猜这不是你想要的。

如果您希望它在梭子中移动时自动更新值,则必须使用梭子的ValueChangeListener属性,以获取选择的大小。

public void selectValueChangeListener(ValueChangeEvent valueChangeEvent) {
   ArrayList list = new ArrayList(Arrays.asList(valueChangeEvent.getNewValue()));
   if(list.isEmpty())
      isTextBoxDisabled=true;
   else
      isTextBoxDisabled=false;
  //refresh the inputText component
  AdfFacesContext.getCurrentInstance().addPartialTarget(myInputText);
} 

请记住,ValueChangeListener只会在提交页面时通过bean方法进行处理。如果要在更改航天飞机的值时处理更改,请设置autoSubmit = true。