+1 vote
by (163k points)

I have a custom controller that allows users to input data in inputFields and add the record to an apex:pageBlockTable by hitting a button to add to the list. I would like to reset these fields each time a user inputs a record so they may enter another record.

Records users input are controlled via a custom controller method that re-instantiates a new record each time, however the previous values still remain in their fields.

enter image description here

How can I reset the fields here each time a user adds a record to the list?

Apex controller

    public with sharing class ecrjcClass{
    public Participant__c record {get;set;}
    public List<Participant__c> allrecords {get;set;}
    public Referral__c ref {get;set;}

    public ecrjcClass(){
        record = new Participant__c();
        allrecords = new List<Participant__c>();
        ref = new Referral__c();

    //Add a record row
    public pageReference Add_Row(){

        Participant__c anotherRecord = new Participant__c();   
        anotherRecord.Name = record.Name;
        anotherRecord.Last_Name__c = record.Last_Name__c;
        anotherRecord.Age__c = record.Age__c;
        anotherRecord.Victim_Offender__c = record.Victim_Offender__c;
        anotherRecord.Phone__c = record.Phone__c;
        insert ref;
        anotherRecord.Referral__c = ref.Id;
        //Issue: Need to insert ref first
        return null;        
    //Save and insert records in list
    public pageReference save(){
        insert allrecords;
        record = null;
        //This seems to work for the first record added, adding any additional records returns an error
        return null;

VF markup

    <apex:pageBlock >
    <!--Participant info-->
    <apex:pageBlockSection title="Partipicant Information">
        <apex:inputField value="{!record.Name}"/>
        <apex:inputField value="{!record.Last_Name__c}"/>
        <apex:inputField value="{!record.Age__c}"/>
        <apex:inputField value="{!record.Phone__c}"/>
        <apex:inputField value="{!record.Victim_Offender__c}"/>
    <!--Add participant to record list-->    
        <apex:pageBlockButtons location="bottom">
        <apex:commandButton action="{!Add_Row}" value="Add Participant"/>
            <apex:pageBlock title="Added Participants">
        <apex:pageBlockTable id="Participants" value="{!allrecords}" var="Participant">
            <apex:column headerValue="First Name" value="{!Participant.Name}"/>
            <apex:column headerValue="Last Name" value="{!Participant.Last_Name__c}"/>
            <apex:column headerValue="Age" value="{!Participant.Age__c}"/>
            <apex:column headerValue="Phone" value="{!Participant.Phone__c}"/>
            <apex:column headerValue="Victim/Offender" value="{!Participant.Victim_Offender__c}"/>
        <apex:pageBlockButtons location="bottom">
            <apex:commandButton action="{!save}" value="Submit"/>

1 Answer

Welcome to Memory Exceeded, where you can ask questions and receive answers from other members of the community.