function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Hari Shankar 20Hari Shankar 20 

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>
AshwiniAshwini (Salesforce Developers) 
Hi Hari,
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