You need to sign in to do that
Don't have an account?
umair ayaz
How to get id of a record when editing from table
Hi,
I have a table with 3 output columns and 1 colum with input field just as shown in the picture below.
I am trying to fire a trigger after the order number is updated. The problem that i am facing is that i want the id of the updated record only where as all the trigger functions display the IDs of all the records in the account and trigger.size returns the total number of records which means that all the records are being updated so my question is how do i get the id of the changed record in the trigger.
Here is my Visualforce page :-
Here is my custom controller
Here is my trigger
Any help regarding this would be much appreciated. Please help a beginner. Thanks in advance
I have a table with 3 output columns and 1 colum with input field just as shown in the picture below.
I am trying to fire a trigger after the order number is updated. The problem that i am facing is that i want the id of the updated record only where as all the trigger functions display the IDs of all the records in the account and trigger.size returns the total number of records which means that all the records are being updated so my question is how do i get the id of the changed record in the trigger.
Here is my Visualforce page :-
<apex:page controller="OrderAccountController" > <apex:form > <apex:pageBlock title="List of accounts"> <apex:pageBlockButtons location="top"> <apex:commandButton value="Reorder" action="{!save}" /> </apex:pageBlockButtons> <apex:pageBlockTable value="{!account}" var="a"> <apex:column value="{!a.Name}"/> <apex:column value="{!a.Industry}"/> <apex:column value="{!a.Type}"/> <apex:column headerValue="Order Number"> <apex:inputField value="{!a.order__c}" /> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
Here is my custom controller
public class OrderAccountController { public List <Account> account=new List <Account>(); public Account act{get;set;} public List <Account> getAccount() { account = [SELECT Id, Name, Site, Type, accountNumber, CustomerPriority__c, order__c, industry FROM Account order by order__c ]; return account; } public PageReference save() { try { update account; } catch(Exception e){ System.debug('Exception occurred '+String.valueOf(e)); } return NULL; } }
Here is my trigger
trigger trigger1 on Account (after update) { public List <Account> account=new List <Account>(); Map<Id,Account> mp = new Map<Id,Account>(); public Integer currentRecordId {get;set;} account = [SELECT Id, Name FROM Account WHERE Id IN :Trigger.New]; for(Account con :trigger.new){ } system.debug(mp); for (Account acc: Trigger.new) { currentRecordId= trigger.size; } System.debug(currentRecordId); }
Any help regarding this would be much appreciated. Please help a beginner. Thanks in advance
In your controller class you are updating all Account record.
If you want to check which record order number is changes in trigger try to update code like below