Salesforce Visualforce – Implemantation using SelectOption

Salesforce Visualforce - <apex:actionFunction> Implementation using SelectOption

Hello guys,

Today I am going to show how to make show how to use <apex:actionFunction>. In this article, I am going to render all the contact which are related to the parent account. I am also going to use the Select option Class.

Here is the Controller Code:

public class ShowContactsRelatedToAccountController {
    public String selectedName{get;set;}
    public List<Contact> showContacts{get; set;}
    public List<Selectoption> lstnamesel = new List<selectoption>();
    public List<Selectoption> getselectedaccnamefields() {
        lstnamesel.add(new selectOption('', '-- None --'));
        System.debug('--lastname--'+lstnamesel);
        for(Account acc :[SELECT id,name FROM Account]) {
            lstnamesel.add(new selectoption(acc.id,acc.name));
        }
        System.debug('--lastname--'+lstnamesel);
        return lstnamesel;
    }
    public pageReference showContacts() {
        System.debug('@@@ selectedName @@@'+selectedName);
        showContacts = [SELECT Name FROM Contact WHERE AccountId =:selectedName];
        System.debug('@@@'+showContacts);
        return null;
    }
}

Visualforce Code:

<apex:page showHeader="false" sidebar="false" controller="ShowContactsRelatedToAccountController">
    <style>
        body{
            margin: 0 auto;
            height:20%;
            width:1000px;
            border: 2px solid black;
            padding: 20px;
        }
        header {
            height: 50px;
            width: 1000px;
            margin: 0 auto;
            text-align: center;
        }
        h1 {
            font-size: 30px;
        }
    </style>
    <header>
        <h1>
            Show Contacts Related to Accounts
        </h1>
    </header>
    <hr /><hr />
    <apex:form>
        <apex:actionFunction action="{!showContacts}" name="generateContacts" reRender="shContacts" /><br />
        <apex:selectList size="1" value="{!selectedName}" onchange="generateContacts()" id="picklist">
            <apex:selectOptions value="{!selectedaccnamefields}" />
        </apex:selectList>
    </apex:form>
    <apex:pageBlock>
        <apex:pageBlockTable id="shContacts" value="{!showContacts}" var="item">
            <apex:column value="{!item.Name}"/>
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:page>

Output:

Thanks.

Happy Coding.

Popular Salesforce Blogs