[SalesForce] ActionSupport not updating select list

I have a lookup field and a select list. After selection of a record on the lookup field, a select list should be populated. My updatingAddressOptions() method is called but my getAddressOptions() is never called on rerender, thus never getting the most recent select options.

<apex:pageBlockSection>
        <apex:outputLabel value="Targeted District" for="SchoolDistrict"/>
            <apex:actionRegion>
                <apex:inputField id="SchoolDistrict" value="{!Consultant_Request__c.Targeted_District__c}" required="false">
                    <apex:actionSupport event="onchange"
                            action="{!updateAddressOptions}"
                            rerender="AccountAddressSelect, address, city, state, country, postalcode"
                            focus="AccountAddressesSelect"
                            />
                </apex:inputField>

         <apex:outputLabel value="Account Addresses"></apex:outputLabel>

                  <apex:selectList size="1" id="AccountAddressesSelect" value="{!AccountAddress}">                           
                           <apex:selectOptions value="{!AddressOptions}"/>
                            <apex:actionSupport event="onchange"
                                   action="{!updateAddressFields}"
                                   rerender="address, city, state, country, postalcode"
                                   focus="SiteAddressField"/>
                  </apex:selectList>

             </apex:actionRegion>
</apex:pageBlockSection>

Controller code:

public List<SelectOption> AddressOptions;
public void updateAddressOptions() {

        System.debug('@@@setting address options');
        List<SelectOption> accountAddressOptions = new List<SelectOption>();

       // lots more things happening here

        AddressOptions = accountAddressOptions;
        System.debug('@@@@@AddressOptions in setAddressOptions(): ' + AddressOptions);

    }

    public List<SelectOption> getAddressOptions(){
        System.debug('@@@getting address options');
        System.debug('@@@@@AddressOptions in getAddressOptions(): ' + AddressOptions);
        return AddressOptions;
    }

Best Answer

You need to rerender a container not the actual select list.

change to this:

<apex:outPutPanel id="AddressSelect_Wrapper" layout="inline">
<apex:selectList size="1" id="AccountAddressesSelect" value="{!AccountAddress}">                           
                           <apex:selectOptions value="{!AddressOptions}"/>
                            <apex:actionSupport event="onchange"
                                   action="{!updateAddressFields}"
                                   rerender="address, city, state, country, postalcode"
                                   focus="SiteAddressField"/>
                  </apex:selectList>
</apex:outPutPanel>

Then rerender the "AddressSelect-Wrapper>

Related Topic