Wrapper Classes:-
---------------------------
<apex:page controller="CreateMultipleContactsController" sidebar="false">
<apex:sectionHeader title="Create multiple" subtitle="Contacts"/>
<apex:form id="theForm">
<apex:pageBlock title="Create Contacts">
<apex:pageBlockTable value="{!conWrapper}" var="cw" id="thePageBlockTable">
<apex:column headerValue="UN">
<apex:outputText value="{!cw.UniqueNumber}" style="width:10px;"/>
</apex:column>
<apex:column headerValue="First Name">
<apex:inputField value="{!cw.con.FirstName}"/>
</apex:column>
<apex:column headerValue="Last Name">
<apex:inputField value="{!cw.con.LastName}"/>
</apex:column>
<!--<apex:column headerValue="Account Name">
<apex:inputField value="{!con.AccountId}"/>
</apex:column> -->
<apex:column headerValue="Phone">
<apex:inputField value="{!cw.con.Phone}"/>
</apex:column>
<apex:column headerValue="Email">
<apex:inputField value="{!cw.con.Email}"/>
</apex:column>
<apex:column >
<apex:commandButton value="Delete" action="{!deleteRow}" immediate="true" reRender="theForm">
<apex:param name="deleteRowNumber" value="{!cw.UniqueNumber}" assignTo="{!deleteRowNumber}"/>
</apex:commandButton>
</apex:column>
</apex:pageBlockTable>
<apex:commandButton value="Add Row" action="{!addRows}" immediate="true" reRender="theForm">
<apex:param name="countNoOfRows" value="1" assignTo="{!countNoOfRows}"/>
</apex:commandButton>
<apex:commandButton value="Add 5 Rows" action="{!addRows}" immediate="true" reRender="theForm">
<apex:param name="countNoOfRows1" value="5" assignTo="{!countNoOfRows}"/>
</apex:commandButton>
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!save}"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
Controller:-
------------------
public with sharing class CreateMultipleContactsController
{
// public List<Contact> conList{set;get;}
public List<ContactWrapper> conWrapper{set;get;}
public Integer countNoOfRows{set;get;}
private Id accId;
private Integer uniqueNo=0;
public Integer deleteRowNumber{set;get;}
/* private Integer countNoOfRows;
public void setcountNoOfRows(integer countNoOfRows)
{
this.countNoOfRows=countNoOfRows;
}*/
public CreateMultipleContactsController ()
{
//countNoOfRows=0;
accId=ApexPages.currentPage().getParameters().get('accId');
// conList=new List<Contact>();
// conList.add(New Contact(AccountId=accId));
conWrapper=new List<ContactWrapper>();
conWrapper.add(new ContactWrapper(uniqueNo++));
}
public void addRows()
{
System.debug('------------->'+countNoOfRows);
// for(Integer i=1;i<=countNoOfRows;i++)
// conList.add(New Contact(AccountId=accId));
for(Integer i=1;i<=countNoOfRows;i++)
conWrapper.add(New ContactWrapper(uniqueNo++));
}
public void deleteRow()
{
for(integer i=0; i<conWrapper.size();i++)
{
if(conWrapper[i].UniqueNumber==deleteRowNumber)
{
conWrapper.remove(i);
}
}
//conWrapper.remove(deleteRowNumber);
}
public Pagereference save()
{
List<Contact> contactList=new List<Contact>();
System.debug('---------'+contactList);
System.debug('---------'+conWrapper);
for(ContactWrapper cw : conWrapper)
{
System.debug('---------'+cw);
contactList.add(cw.Con);
}
System.debug('---------'+contactList);
if(!contactList.isEmpty())
insert contactList;
Pagereference p=new Pagereference ('/'+accID);
return p;
}
public class ContactWrapper
{
Public Integer UniqueNumber{set;get;}
public Contact con{set;get;}
public ContactWrapper(Integer un)
{
Id accId=ApexPages.currentPage().getParameters().get('accId');
UniqueNumber=un;
con=new Contact(AccountId=accId);
}
}
}
No comments:
Post a Comment