Wrapper Class Example with multiple delete options
This is the working example of Wrapper Class with lead as example with multiple delete option.
<apex:page controller="wrapperClas">
<apex:form >
<apex:pageBlock id="pbLead">
<apex:pageBlockButtons >
<apex:commandButton value="Delete" action="{!del}" rerender="pbLead"/>
</apex:pageBlockButtons>
<!-- In our table we are displaying the cContact records -->
<apex:pageBlockTable value="{!leadList}" var="l" id="table">
<apex:column >
<!-- This is our selected Boolean property in our wrapper class -->
<apex:inputCheckbox value="{!l.selected}"/>
</apex:column>
<!-- This is how we access the contact values within our cContact container/wrapper -->
<apex:column value="{!l.lea.firstname}" />
<apex:column value="{!l.lea.lastname}" />
<apex:column value="{!l.lea.company}" />
<apex:column value="{!l.lea.status}" />
<apex:column >
<apex:commandLink value="Edit" action="{!edit}">
<apex:param name="recId" value="{!l.lea.Id}" assignTo="{!recId}" />
</apex:commandLink>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
Controller
public class wrapperClas {
public List<lLead> leadList {get; set;}
public Id recId {get; set;}
public Id delData{get;set;}
public wrapperClas()
{
fetchAllLeads();
}
public PageReference edit() {
PageReference pgLead = Page.leadtask;
pgLead.getParameters().put('leadId',recId);
return pgLead;
}
private void fetchAllLeads()
{
leadList = new List<lLead>();
for(Lead l: [select firstname,lastname,company,status from Lead]) {
leadList.add(new lLead(l));
}
}
public void del(){
List<Lead> selectedLeads = new List<Lead>();
for(lLead lLea: leadList) {
if(lLea.selected == true) {
selectedLeads.add(lLea.lea);
}
}
delete selectedLeads;
fetchAllLeads();
}
public class lLead {
public Lead lea {get; set;}
public Boolean selected {get; set;}
public lLead(Lead l) {
lea = l;
selected = false;
}
}
}
Comments
Post a Comment