• Qadir Khan
  • NEWBIE
  • 0 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 0
    Replies
trigger updateRelatedCon on Task (after insert,after update,after delete) {
   Set<String> whoIds = new Set<String>();
   list<task> tsk=Trigger.isDelete?Trigger.old:Trigger.new;
    for (Task t :tsk)
    {
      whoIds.add(t.WhoId);
    }
    List<Contact> cons =[SELECT Id,Due_Date__c,Priority__c,Subject__c  FROM Contact WHERE Id =: whoIds];
    Map<String, Task> taskMap = new Map<String, Task>();
    for (Task t : tsk)
    {
      taskMap.put(t.WhoId, t);
    }
    for (Contact c : cons)
    {
      if (taskMap.containsKey(c.Id))
      {
        c.Due_Date__c= taskMap.get(c.Id).ActivityDate;
        c.Priority__c= taskMap.get(c.Id).Priority;
        c.Subject__c = taskMap.get(c.Id).Subject;
      }
    }
    update cons;
}
Controller
public class lonchangeaccount{
        public id aid{get;set;}
        public boolean render{get;set;}
 
        List<selectoption> options=new List<selectoption>();
        public  List<Contact> lstcont{get;set;}
        public lonchangeaccount(){
                    lstcont=new List<contact>();
           
            }
      
        Map<id,List<contact>> maplstcont=new Map<id,List<contact>>();
        public List<SelectOption>  getValues(){
                options.add(new selectOption('--None--','--None--'));
                for(Account acc:[select id,name,(select id,name,email from contacts)from account]){
                    options.add(new selectOption(acc.id,acc.name));
                    maplstcont.put(acc.id,acc.contacts);
               
                }
                return options;
        }
        public void  Contactlst(){
                        lstcont.clear();
                       if(aid!=null){
                            render=true;
                            lstcont.addAll(maplstcont.get(aid));
                        }
         }
}

VF Page
<apex:page controller="lonchangeaccount">
<apex:form >
         <apex:pageBlock title="Select Account">
         <apex:actionFunction action="{!Contactlst}" name="change"/>
         <apex:selectList value="{!aid}" multiselect="false" size="1" onchange="change();">
                <apex:selectOptions value="{!values}"/>
            </apex:selectList>
            </apex:pageBlock>
            <apex:pageBlock title="Related Contacts" >
          <apex:outputPanel rendered="{!render}" id="balu">
           
              <apex:pageBlockTable value="{!lstcont}" var="c">
             
                      <apex:column value="{!c.name}"/>
                      <apex:column value="{!c.email}"/>
              </apex:pageBlockTable>
             <apex:commandButton value="Next"/>
         </apex:outputPanel>
   
    </apex:pageBlock>
    </apex:form>

</apex:page>