selectOneChoice填充预先选择的默认值

时间:2015-04-15 10:08:00

标签: oracle-adf

我需要af:selectOneChoice填充了来自支持bean的值,默认情况下应选择一个列表中的值(比如index = 5)。我们正在使用Oracle Adf 10。*

有人可以帮我吗?

由于

2 个答案:

答案 0 :(得分:1)

要填充列表值,您可以使用:

<af:selectOneChoice value="val3" label="XXXX" id="soc1" >
      <f:selectItems value="#{YourBean.values}" id="si1"/>
</af:selectOneChoice>

在YourBean.java中,您将拥有如下方法:

public List<SelectItem> getValues() {
   if (list == null) {
            list = new ArrayList<SelectItem>();
            list(new SelectItem("val1","Label 1"));
            list(new SelectItem("val2","Label 2"));
            list(new SelectItem("val3","Label 3"));

   }
   return list;

}

这样您就会在选择列表中看到“标签3”作为默认值。

答案 1 :(得分:0)

要设置默认值,可以使用此:

<af:selectOneChoice label="My Field"
                    id="MyField" value="#{bindings.MyAttribute.inputValue}"
                    autoSubmit="true"
                    binding="#{MyBean.myField}">
  <f:selectItems value="#{bindings.MyAttribute.items}"
                 id="MyFieldItems"/>
</af:selectOneChoice>

请注意,SelectOneChoice字段具有与Java Bean的绑定。我们将使用setter方法设置默认值。

public void setMyField(RichSelectOneChoice myField) {
    // since getter/setter methods are called multiple times on
    // page load, we need to prevent setting attribute value more than once
    if(myField != null && myField.getValue() == null){
        ADFUtils.setBoundAttributeValue("MyAttribute", "SomeValue");
    }
    this.myField = myField;
}

要设置默认索引(例如,从列表中的第一个开始),我们可以使用类似的方法:

public void setMyField(RichSelectOneChoice myField) {
    if(myField != null && myField.getValue() == null){
        // default value will be 1st from the list
        myField.setValue(0);
    }
    this.myField = myField;
}