You need to sign in to do that
Don't have an account?
Gianni Albertoe 11
Dynamically add or remove rows visual force
Hello,
Im a newbie starting to use apex. Im trying to tweak a code to make dynamic rows and save them. I managed to get the visualforce page to load and save a new record number. The code i had was made for the standard account object. I made an custom object expenceclaims, the record is saved but te fields remaim empty. Could someone help me with this please!
Thanx in advance
Im a newbie starting to use apex. Im trying to tweak a code to make dynamic rows and save them. I managed to get the visualforce page to load and save a new record number. The code i had was made for the standard account object. I made an custom object expenceclaims, the record is saved but te fields remaim empty. Could someone help me with this please!
Thanx in advance
<apex:page StandardController="Expence_Claims__c" extensions="ExpenceClaims" id="thePage" sidebar="false"> <apex:form > <apex:pageblock id="pb" > <apex:pageBlockButtons > <apex:commandbutton value="Add" action="{!Add}" rerender="pb1"/> <apex:commandbutton value="Save" action="{!Save}"/> </apex:pageBlockButtons> <apex:pageblock id="pb2"> <apex:repeat value="{!lstInner}" var="e1" id="therepeat"> <apex:panelGrid columns="6"> <apex:panelGrid headerClass="Name"> <apex:facet name="header">Del</apex:facet> <apex:commandButton value="X" action="{!Del}" rerender="pb1"> <apex:param name="rowToBeDeleted" value="{!e1.recCount}" assignTo="{!selectedRowIndex}"></apex:param> </apex:commandButton> </apex:panelGrid> <apex:panelGrid title="SPD" > <apex:facet name="header">Employee</apex:facet> <apex:inputField value="{!Expence_Claims__c.Name_Employee__c}"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Date</apex:facet> <apex:inputField value="{!Expence_Claims__c.Date__c}"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Description</apex:facet> <apex:inputField value="{!Expence_Claims__c.Discription__c}" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Amount</apex:facet> <apex:inputField value="{!Expence_Claims__c.Amount__c}" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Bank account</apex:facet> <apex:inputField value="{!Expence_Claims__c.Bank_account_number__c}" /> </apex:panelGrid> </apex:panelgrid> </apex:repeat> </apex:pageBlock> </apex:pageblock> </apex:form> </apex:page>
public class ExpenceClaims { //will hold the Expence_Claims__c records to be saved public List<Expence_Claims__c>lstAcct = new List<Expence_Claims__c>(); //list of the inner class public List<innerClass> lstInner { get;set; } //will indicate the row to be deleted public String selectedRowIndex {get;set;} //no. of rows added/records in the inner class list public Integer count = 1; //{get;set;} ////save the records by adding the elements in the inner class list to lstAcct,return to the same page public PageReference Save() { PageReference pr = new PageReference('/apex/ExpenceClaims'); for(Integer j = 0;j<lstInner.size();j++) { lstAcct.add(lstInner[j].acct); } insert lstAcct; pr.setRedirect(True); return pr; } //add one more row public void Add() { count = count+1; addMore(); } /*Begin addMore*/ public void addMore() { //call to the iner class constructor innerClass objInnerClass = new innerClass(count); //add the record to the inner class list lstInner.add(objInnerClass); system.debug('lstInner---->'+lstInner); }/* end addMore*/ /* begin delete */ public void Del() { system.debug('selected row index---->'+selectedRowIndex); lstInner.remove(Integer.valueOf(selectedRowIndex)-1); count = count - 1; }/*End del*/ /*Constructor*/ public ExpenceClaims(ApexPages.StandardController ctlr) { lstInner = new List<innerClass>(); addMore(); selectedRowIndex = '0'; }/*End Constructor*/ /*Inner Class*/ public class innerClass { /*recCount acts as a index for a row. This will be helpful to identify the row to be deleted */ public String recCount {get;set;} public Expence_Claims__c acct {get;set;} /*Inner Class Constructor*/ public innerClass(Integer intCount) { recCount = String.valueOf(intCount); /*create a new Expence_Claims__c*/ acct = new Expence_Claims__c(); }/*End Inner class Constructor*/ }/*End inner Class*/ }/*End Class*/
https://developer.salesforce.com/forums/?id=906F0000000963NIAQ