You need to sign in to do that
Don't have an account?
Ramana123
Display list of accounts in a block with checkbox, if the user selects the accounts and click on "Show Contacts " button the selected account related contacts should display in the pageBlocktable beside the accounts list block. plzz help me in this code
//apex class
public class AccountSelectClassController {
//CONTROLLER CLASS
public list<wrapaccount> wrapaccountList { get; set; }
public list<account> selectedAccounts{get;set;}
public list<id> selectedrecordsIds{get;set;}
public AccountSelectClassController (){
//if(wrapaccountList ==null){
wrapaccountList =new list<wrapaccount>();
for(account a:[select id,name from account limit 10]){
wrapaccountlist.add(new wrapaccount(a));
}
// }
}
//### SELECTED ACCOUNT SHOWN BY THIS METHOD
public void ProcessSelected(){
selectedAccounts=new list<account>();
selectedrecordsIds =new list<id>();
for(wrapaccount wrapobj:wrapaccountlist){
if(wrapobj.isSelected==true){
selectedAccounts.add(wrapobj.accn);
}
}
for(Account abc:selectedAccounts)
{
selectedrecordsIds.add(abc.id);
}
List<Contact> records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds ];
System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
}
//##THIS IS WRAPPER CLASS
// account and checkbox taken in wrapper class
public class wrapaccount{
public account accn{get;set;}
public boolean isSelected{get;set;}
public wrapaccount(account a){
accn=a;
isselected=false;
}
}
}
//apex page
<apex:page sidebar="false" controller="AccountSelectClassController">
<!--VF PAGE BLOCK-->
<apex:form >
<apex:pageBlock >
<apex:pageBlockButtons >
<apex:commandButton action="{!ProcessSelected}" value="Show Selected accounts" reRender="block2"/>
</apex:pageBlockButtons>
<apex:pageBlockSection columns="2">
<apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
<apex:column >
<apex:facet name="header">
<apex:inputCheckbox />
</apex:facet>
<apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
</apex:column>
<apex:column value="{!waccl.accn.name}"/>
</apex:pageBlockTable>
<apex:pageBlockTable value="{!records}" var="sa" id="block2">
<apex:column value="{!sa.name}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
public class AccountSelectClassController {
//CONTROLLER CLASS
public list<wrapaccount> wrapaccountList { get; set; }
public list<account> selectedAccounts{get;set;}
public list<id> selectedrecordsIds{get;set;}
public AccountSelectClassController (){
//if(wrapaccountList ==null){
wrapaccountList =new list<wrapaccount>();
for(account a:[select id,name from account limit 10]){
wrapaccountlist.add(new wrapaccount(a));
}
// }
}
//### SELECTED ACCOUNT SHOWN BY THIS METHOD
public void ProcessSelected(){
selectedAccounts=new list<account>();
selectedrecordsIds =new list<id>();
for(wrapaccount wrapobj:wrapaccountlist){
if(wrapobj.isSelected==true){
selectedAccounts.add(wrapobj.accn);
}
}
for(Account abc:selectedAccounts)
{
selectedrecordsIds.add(abc.id);
}
List<Contact> records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds ];
System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
}
//##THIS IS WRAPPER CLASS
// account and checkbox taken in wrapper class
public class wrapaccount{
public account accn{get;set;}
public boolean isSelected{get;set;}
public wrapaccount(account a){
accn=a;
isselected=false;
}
}
}
//apex page
<apex:page sidebar="false" controller="AccountSelectClassController">
<!--VF PAGE BLOCK-->
<apex:form >
<apex:pageBlock >
<apex:pageBlockButtons >
<apex:commandButton action="{!ProcessSelected}" value="Show Selected accounts" reRender="block2"/>
</apex:pageBlockButtons>
<apex:pageBlockSection columns="2">
<apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
<apex:column >
<apex:facet name="header">
<apex:inputCheckbox />
</apex:facet>
<apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
</apex:column>
<apex:column value="{!waccl.accn.name}"/>
</apex:pageBlockTable>
<apex:pageBlockTable value="{!records}" var="sa" id="block2">
<apex:column value="{!sa.name}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Write this apex code:-
//apex class
public class AccountSelectClassController {
//CONTROLLER CLASS
public list<wrapaccount> wrapaccountList { get; set; }
public list<account> selectedAccounts{get;set;}
public list<id> selectedrecordsIds{get;set;}
public List<Contact> records{get;set;}
public AccountSelectClassController (){
//if(wrapaccountList ==null){
wrapaccountList =new list<wrapaccount>();
for(account a:[select id,name from account limit 10]){
wrapaccountlist.add(new wrapaccount(a));
}
// }
}
//### SELECTED ACCOUNT SHOWN BY THIS METHOD
public void ProcessSelected(){
selectedAccounts=new list<account>();
selectedrecordsIds =new list<id>();
for(wrapaccount wrapobj:wrapaccountlist){
if(wrapobj.isSelected==true){
selectedAccounts.add(wrapobj.accn);
}
}
for(Account abc:selectedAccounts)
{
selectedrecordsIds.add(abc.id);
}
records = List<Contact>([SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds ]);
System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
}
//##THIS IS WRAPPER CLASS
// account and checkbox taken in wrapper class
public class wrapaccount{
public account accn{get;set;}
public boolean isSelected{get;set;}
public wrapaccount(account a){
accn=a;
isselected=false;
}
}
}
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks and Regards,
Sachin Arora
www.sachinsf.com