function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
adi salesforceadi salesforce 

How to display list of accounts if we click particular account the corresponding contacts should be displayed in separate block in the same page.

Khan AnasKhan Anas (Salesforce Developers) 
Hi Adi,

Please try the below code, it is working fine.

Visualforce:
<apex:page controller="AccountContactC" sidebar="false">
    <apex:form >
        <apex:pageBlock title="AccountTable">
            <apex:pageBlockTable value="{!Acclst}" var="A">
                <apex:column headerValue="NAME OF THE ACCOUNT" > 
                    <apex:commandLink value="{!A.Name}" action="{!setupContacts}" rerender="conttable">
                        <apex:param value="{!A.Id}" name="idForConts" assignTo="{!recid}"/>
                    </apex:commandLink>
                </apex:column>  
                <apex:column value="{!A.Id}"/>
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:form>
    <apex:pageBlock title="Contacts">
        <apex:pageBlockTable value="{!contacts}" var="contact" id="conttable">
            <apex:column value="{!contact.FirstName}"/>
            <apex:column value="{!contact.LastName}"/>
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:page>

Controller:
public class AccountContactC {
    
    public string recid{get;set;}
    public list<Account> Acclst{get;set;}    
    public List<Contact> contacts {get; set;}
    
    public AccountContactC(){
        Acclst = [select Id,Name from Account LIMIT 10];
        contacts=null;
    }
    
    public void setupContacts() {
        contacts=[select id, FirstName, LastName from Contact where AccountId=:recId];
    }
}


I hope it helps you.

Kindly let me inform if it helps you and close your query by marking it as solved so that it can help others in future.

Thanks and Regards,
Khan Anas​​

 
FARSANA PSFARSANA PS
Hi,
Try this..

VF Page..
<apex:page controller="account_contact_controller">
 <apex:form >       
   <apex:selectList value="{!val}"  multiselect="false" size="1">
         <apex:actionSupport event="onchange" action="{!changeList}" reRender="myblck"/>
      <apex:selectOptions value="{!items}">
    </apex:selectOptions>
</apex:selectList>
       <apex:pageBlock id="myblck" >
       <apex:pageBlockSection title="Related Records">
           <apex:pageBlockTable value="{!acc_final_list}" var="con" >  
              <apex:column >
                 <apex:pageBlockTable value="{!con.contacts}" var="c" > 
                 <apex:column headerValue="contact name"  value="{!c.name}"/>
                 </apex:pageBlockTable> 
               </apex:column>
            </apex:pageBlockTable> 
          </apex:pageBlockSection>
   </apex:pageBlock>    
</apex:form>
</apex:page>

Controller
public class account_contact_controller {
       public String Val{get;set;}
       public List<SelectOption> opt {get;set;}
       public list<Account> accList {get;set;}
       public list<Account> acc_final_list{get;set;}
       public account_opportunity_controller()
       {
           accList=[select id,name from account limit 100];
       }
       public List<SelectOption> getItems() {
         opt = new List<SelectOption>();
          accList=[select id,name from account limit 100];
         opt.add(new SelectOption('none','--select--'));
           for(Account a:accList)
            opt.add(new SelectOption(string.valueof(a.id),a.name));
         return opt;
        }
       public void changeList()
       { 
        id accid=id.valueof(Val);
           con_list=new list<contact>();
           opp_list=new list<opportunity>();
        acc_final_list =[select id,name,(select name from contacts) from account where id=: accid];
      
       }
  
}

Hope this helps...
Khan AnasKhan Anas (Salesforce Developers) 
Hi Adi,

Kindly mark one of the answers above as solved if it's resolved so that it gets removed from the unanswered queue which results in helping others who are encountering a similar issue.

Thanks and regards,
Khan Anas
Ajay K DubediAjay K Dubedi
Hi Adi,

You can try the following code :
<apex:page controller="AccContactController">
    <apex:form >
        <apex:pageBlock title="Account Name">
            Account Names&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <apex:selectList value="{!selectedAccId}" size="1">                                 
                <apex:selectOptions value="{!AccountNames}"/>
                <apex:actionSupport event="onchange" reRender="Cont,Oppor"/>
            </apex:selectList>
            
            <br/><br/>
                Contact Names&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <apex:selectList value="{!selectedConId}" size="1"  id="Cont">
                    <apex:selectOptions value="{!ContactNames}" />
                    <apex:actionSupport event="onchange"/>
                </apex:selectList>       
        </apex:pageBlock>
    </apex:form>
</apex:page>

Controller:
public class AccContactController {
    public Id selectedAccId{get;set;} 
    public Id selectedConId{get;set;}
  
      
    public List<Contact> conlist {get;set;} 
  
    public List<SelectOption> getAccountNames() {
        List<SelectOption> accOptions= new List<SelectOption>();
        system.debug(selectedAccId);
        accOptions.add( new SelectOption('','--Select--'));
        for(Account acc : [select Id,name from Account ] ) {
            accOptions.add(new SelectOption(acc.Id,acc.name));
        }
        return accOptions;
    }
    
    public List<SelectOption> getContactNames() {
        System.debug('Entered ContactNames account id...........'+selectedAccId );
        List<SelectOption> conOptions= new List<SelectOption>();
        List<SelectOption> options = new List<SelectOption>();
        if(selectedAccId != null)
        {     
            for( contact con : [select Id,name,accountid from contact where accountid=:selectedAccId ] ) {
                conOptions.add( new SelectOption(con.Id,con.name));
            }
        }                  
        else
        {
            conOptions.add( new SelectOption('--None--','--None--'));
        }
        return conOptions;
    }
}
Please mark as best answer if it helps you.

Thank You 
Ajay Dubedi