> In the contact object i have a related list "Intralink Portal group" each contact can have multiple Intralink Porta groups. i have created a visual force page to add more than one intralink portal groups to a contact.now i want to select the Intralink Portal groups from one contact and add all of them to a new contact.how to do it? below is the visualforce page code and controller code.through controller i am able to add intralink portal groups to contact.but i am not able to copy all the list of intralink portal groups from one contact to another. below is the vf page [![enter image description here][1]][1] <apex:page Controller="ilGroupCtrl" doctype="html-5.0"> <apex:form > <apex:pageBlock title="Add Intralinks Groups"> <apex:pageBlockButtons > <apex:commandButton action="{!save}" value="Save"/> <apex:commandButton action="{!Cancel}" value="Cancel"/> </apex:pageBlockButtons> <apex:pageBlockSection columns="1" id="main"> <apex:inputField value="{!mainGroupLinker.Contact__c}" /> <apex:pageBlockSectionItem > <apex:outputLabel value="Copy From" /> <apex:inputField value="{!copyFrom.Contact__c}" required="false"/> </apex:pageBlockSectionItem> <apex:repeat value="{!groupList}" var="groupObj"> <apex:pageBlockSectionItem > <apex:outputLabel value="Intralinks Group" /> <apex:inputField value="{!groupObj.Intralinks_Portal_Group__c}" required="false"/> </apex:pageBlockSectionItem> </apex:repeat> <apex:commandButton action="{!add}" value="Add" rerender="main"/> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page> Apex Controller public class ilGroupCtrl { Map<String, String> params; public Intralinks_Group_and_Contact_Links__c mainGroupLinker { get; set; } public Intralinks_Group_and_Contact_Links__c copyFrom { get; set; } public List<Intralinks_Group_and_Contact_Links__c> groupList { get; set; } public ilGroupCtrl() { params = ApexPages.currentPage().getParameters(); mainGroupLinker = new Intralinks_Group_and_Contact_Links__c(); copyFrom = new Intralinks_Group_and_Contact_Links__c(); groupList = new List<Intralinks_Group_and_Contact_Links__c>(); // if QueryString contains a contact Id, autofill the Contact field if(params.containsKey('cid')) { mainGroupLinker.Contact__c = params.get('cid'); } groupList.add(mainGroupLinker); } public void add() { groupList.add(new Intralinks_Group_and_Contact_Links__c(Contact__c=mainGroupLinker.Contact__c)); return; } public PageReference save() { List<Intralinks_Group_and_Contact_Links__c> toAdd = new List<Intralinks_Group_and_Contact_Links__c>(); //query all the Groups the copyFrom contact has if(copyFrom.Contact__c != null) { List<Intralinks_Group_and_Contact_Links__c> toCopy = [SELECT Intralinks_Portal_Group__c FROM Intralinks_Group_and_Contact_Links__c where Contact__c = :copyFrom.Contact__c]; for(Intralinks_Group_and_Contact_Links__c copyGroup : toCopy) { Intralinks_Group_and_Contact_Links__c newCopy = new Intralinks_Group_and_Contact_Links__c(Contact__c= mainGroupLinker.Contact__c,Intralinks_Portal_Group__c= copyGroup.Intralinks_Portal_Group__c); } } for (Intralinks_Group_and_Contact_Links__c g : groupList) { // save it if it's not null. if(g.Intralinks_Portal_Group__c != null) { toAdd.add(g); } } System.debug('toAdd count: ' + toAdd.size()); if(toAdd.size() > 0) { insert toAdd; } return null; } Public Pagereference Cancel(){ Pagereference Page = new PageReference(ApexPages.currentPage().getParameters().get('https://cs16.salesforce.com/{!mainGroupLinker.Contact__c}')); return Page; } } [1]: https://i.sstatic.net/xkXFX.png