Mass Updating Records with a Custom Controller Using Visualforce Page
Here's an example illustrating these steps:
Controller
public with sharing class MassUpdateController {public List<MyObject__c> records { get; set; }
public Set<Id> selectedIds { get; set; }
public MassUpdateController() {
// Fetch records to display
records = [SELECT Id, Name, Active__c FROM Agent__c LIMIT 10];
selectedIds = new Set<Id>();
}
// Method to handle the mass update operation
public PageReference performMassUpdate() {
List< Agent__c > recordsToUpdate = new List< Agent__c >();
// Fetch selected records to update
for (Agent__c record : records) {
if (selectedIds.contains(record.Id)) {
// Apply changes to records
record.Active__c = false;
recordsToUpdate.add(record);
}
}
// Perform bulk update
if (!recordsToUpdate.isEmpty()) {
update recordsToUpdate;
}
// Redirect back to the Visualforce page or any other desired page
return ApexPages.currentPage();
}
}
Visualforce
<apex:page controller="MassUpdateController"><apex:form>
<apex:pageBlock>
<apex:pageBlockTable value="{!records}" var="record">
<apex:column>
<apex:inputCheckbox value="{!selectedIds}" id="selected" layout="labelOnly" />
</apex:column>
<apex:column value="{!record.Name}" />
<apex:column value="{!record.Active__c}" />
</apex:pageBlockTable>
<apex:commandButton value="Agent Mass Update" action="{!performMassUpdate}" rerender="none"/>
</apex:pageBlock>
</apex:form>
</apex:page>
Comments
Post a Comment