You need to sign in to do that
Don't have an account?
Unknown property on VF page with custom controller getting error
EnrollmentTrigger.apxt
trigger EnrollmentTrigger on Enrollment__c (after insert, after update) {
if (Trigger.isAfter) {
if (Trigger.isInsert || Trigger.isUpdate) {
EnrollmentHandler.handleEnrollments(Trigger.new);
}
}
}
EnrollmentHandler.apxc
public class EnrollmentHandler {
public static void handleEnrollments(List<Enrollment__c> enrollments, string toAddress) {
// Logic to fetch data and prepare for PDF generation
List<Enrollment__c> enrollmentData = getEnrollmentData(enrollments);
// Generate PDF
PageReference pdf = Page.EnrollmentPDFPage;
pdf.getParameters().put('id', String.valueOf(enrollments[0].Id));
Blob pdfBlob = pdf.getContentAsPDF();
// Create and attach the PDF to an email
Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
attachment.setFileName('EnrollmentData.pdf');
attachment.setBody(pdfBlob);
// Compose and send the email
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.toaddresses=new String[]{toAddress};
// String[] toAddresses = new String[]{'recipient@example.com'}; // Add the recipient's email address here
//email.setToAddresses(toAddresses);
email.setSubject('Enrollment Data PDF');
email.setPlainTextBody('The Enrollment Data PDF is attached.');
email.setFileAttachments(new List<Messaging.EmailFileAttachment>{attachment});
Messaging.sendEmail(new Messaging.SingleEmailMessage[]{email});
}
// Method to fetch enrollment data
public static List<Enrollment__c> getEnrollmentData(List<Enrollment__c> enrollments) {
// Implement your logic here to fetch the enrollment data
List<Enrollment__c> fetchedData = [SELECT Id, Name, Course__c, Email__c FROM Enrollment__c WHERE Id IN :enrollments];
return fetchedData;
}
}
In Vf page while saving I am getting error Unknown property 'EnrollmentHandler.enrollmentData' please help me
<apex:page renderAs="pdf" controller="EnrollmentHandler" showHeader="false">
<apex:form>
<apex:pageBlock title="Enrollment Data">
<apex:pageBlockTable value="{!enrollmentData}" var="enrollment">
<apex:column value="{!enrollment.Id}"/>
<apex:column value="{!enrollment.Name}"/>
<apex:column value="{!enrollment.Course__c}"/>
<apex:column value="{!enrollment.Email__c}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
Apex Code Development
The error "Unknown property 'EnrollmentHandler.enrollmentData'" suggests 'enrollmentData' is not defined in your controller. To fix it, add public List<Enrollment__c> enrollmentData { get; set; } to your 'EnrollmentHandler' class, allowing your Visualforce page to access the data.
If this information helps, please mark the answer as best. Thank you