Checking Accounts Contact – Visual force page to get related Contacts by searching account.
Displaying related contact of an account by entering account name in a text box:This scenario describes the usage of apex:actionstatus. By using apex:actionstatus we can display status message when page is loading. For this we have to use apex:facet along with actionstatus.
Visualforce page:
<apex:page sidebar="false" controller="AccWithAllContactsClass"> <apex:form > <apex:inputtext value="{!accName}" /> <apex:commandButton value="ShowContacts" action="{!showContacts}" rerender="out" status="mystatus"/><br/> <apex:actionstatus id="mystatus" starttext="please wait it is loading contacts......."> <apex:facet name="stop"> <apex:outputpanel id="out"> <apex:pageBlock > <apex:pageBlockSection > <apex:pageBlockTable value="{!conRecords}" var="c"> <apex:column headerValue="Contacts"> {!c.Name} </apex:column> </apex:pageBlockTable> </apex:pageBlockSection> </apex:pageBlock> </apex:outputpanel> </apex:facet> </apex:actionstatus> </apex:form> </apex:page>
Apex class:
public with sharing class AccWithAllContactsClass { List<Account> lstaccount = new List<Account>(); List<contact> lstcontacts = new List<contact>(); public List<contact> getConRecords() { lstcontacts.clear(); accIds.clear(); lstaccount.clear(); system.debug('****AccNameTextValue is *****'+accName); lstaccount=[select id,name from Account where name=:accName]; for(Integer i=0;i<lstaccount.size();i++) { accIds.add(lstaccount[i].Id); } lstcontacts =[select id,name,accountId from contact where accountid in : accIds]; system.debug('**** List of Contacts for Test is ***'+lstcontacts); return lstcontacts; } set<string> accIds = new set<string>(); public pagereference showContacts() { return null; } public String accName { get; set; } }
O/P Page: