Dynamically enable or disable items of ADF bound List (af:selectOneChoice) -Oracle ADF

Sharing is Caring

Hello All,
This tutorial is about a requirement of conditionally enabling/disabling items (values) of ADF bound List (af:selectOneChoice) component
here I am taking reference of default HR Schema (Departments and Location table )

See the steps-

  • Create a Fusion Web Application and business components using both tables
  •  Now create List of Values (Lov) on LocationId of departments VO from Location VO
  • Set List Attribute to LocationId and for UI city will be shown
  • Now Drag Departments VO from Data Control on the page as a form
  •  Select LocationId list field and delete f:selectItems from it, now drag af:selectItem as the child of af:selectOneChoice and surround it with af:forEach
  • Add tree binding of Location ViewObject to page bindings in order to populate list items using forEach
  •  Now select af:forEach and set its property and variable name, as we have to iterate through Location VO for list items
  •  Again select af:selectItem and set its value and label property using forEach variable’s  
  • Now run your application, and see that list box is ready with values
  • Now we have to disable its values as a condition basis, I have written an Expression on af:selectItem’s disabled property



  • I have written condition for DepartmentId 100 and 110, see in the source of the page

<af:selectOneChoice value="#{bindings.LocationId.inputValue}" label="#{bindings.LocationId.label}"
                                        shortDesc="#{bindings.LocationId.hints.tooltip}" id="soc1"
                        <af:forEach items="#{bindings.Locations1.rangeSet}" var="list">
                            <af:selectItem label="#{list.City}" id="si1" value="#{list.LocationId}"
                                           disabled="#{ (bindings.DepartmentId.inputValue==100 and (list.LocationId==1000 || list.LocationId==1300)) || (bindings.DepartmentId.inputValue==110 and (list.LocationId==1500 || list.LocationId==1600 || list.LocationId==1700 || list.LocationId==1800 || list.LocationId==1900))}"/>


  • Now value given in Expression for Location Id will be disabled for given Department
  • Run your page and select DepartmentId 100 and 110 to see disabled list items


Sample ADF Application –Download

 Cheers 🙂 Happy Learning

Related Posts

0 thoughts on “Dynamically enable or disable items of ADF bound List (af:selectOneChoice) -Oracle ADF”

Leave a Reply

Your email address will not be published. Required fields are marked *