You need to sign in to do that
Don't have an account?

clear inputFields after update
How do I clear the inputfields after an update?
here is my VF page:
<apex:page Controller="AccountMaintenanceController"> <h1>Manage Salesperson Territory Assignments</h1> <apex:form > <apex:pageBlock title="Update Specific District or Account Ownership" mode="edit"> <apex:pageBlockButtons > <apex:commandButton action="{!updateChildAccountOwnership}" value="Update" rerender="successMsg" /> <apex:commandButton action="{!cancel}" value="Cancel" immediate="true" /> </apex:pageBlockButtons> <apex:pageMessages rendered="true" id="successMsg" /> <apex:pageBlockSection title="Used to update owner of specified account and related child accounts" columns="1"> <apex:pageBlockSectionItem > <apex:outputLabel value="Change Owner To" for="new_account_owner" /> <apex:inputField value="{!AccountToByParent.ownerId}" id="new_account_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="District Account to update" for="account_name" /> <apex:inputField value="{!DistrictAccount.parentId}" id="account_name" required="true" /> </apex:pageBlockSectionItem> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>
Here is my controller class:
public class AccountMaintenanceController { private Account acctToByParent = new Account(); private Account parentAcct = new Account(); public PageReference updateChildAccountOwnership() { Account parent = [Select Id, OwnerId From Account where Id =: parentAcct.ParentId]; List<Account> childAccts = [Select Id, OwnerId From Account where ParentId =: parent.Id]; parent.ownerId = acctToByParent.ownerId; DbUtil.save(parent); List<Account> lst = new List<Account>(); for (Account acct: childAccts) { acct.OwnerId = acctToByParent.OwnerId; lst.add(acct); } DbUtil.save(lst); ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Account ownership updated successfully.'); ApexPages.addMessage(msg); return null; } public PageReference cancel() { PageReference newpage = new PageReference(System.currentPageReference().getURL()); newpage.setRedirect(true); return newpage; } public Account getAccountToByParent() { return acctToByParent; } public Account getDistrictAccount() { return parentAcct; } }
I've tried setting the private fields to an empty string, but that did not work.
Thanks for any help.
All Answers
Hey
Because you're returning null as your pagereference you controller is maintaining the 'session' ie. the state of your controller and all variables is being preserved, try this instead:
public PageReference updateChildAccountOwnership() { Account parent = [Select Id, OwnerId From Account where Id =: parentAcct.ParentId]; List<Account> childAccts = [Select Id, OwnerId From Account where ParentId =: parent.Id]; parent.ownerId = acctToByParent.ownerId; DbUtil.save(parent); List<Account> lst = new List<Account>(); for (Account acct: childAccts) { acct.OwnerId = acctToByParent.OwnerId; lst.add(acct); } DbUtil.save(lst); ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Account ownership updated successfully.'); ApexPages.addMessage(msg); PageReference pr = System.CurrentPage(); pr.setRedirect(true); return pr; }
There is one negative implication here, your page message are not going to show up. As an alternative you might consider attaching a parameter to the pagereference before you return it and use this parm to decide whether to display a message or not.
Cheers,
Wes
I tried modifying my method to return the current page reference, but it returned an xml page:
<?xml version="1.0" ?> - <html xmlns="http://www.w3.org/1999/xhtml"> - <head> <script src="/faces/a4j/g/3_3_0.GAorg.ajax4jsf.javascript.AjaxScript" type="text/javascript" /> <meta name="Ajax-Update-Ids" content="" /> <title /> </head> - <body> - <span id="ajax-view-state"> <input type="hidden" id="com.salesforce.visualforce.ViewState" name="com.salesforce.visualforce.ViewState" value="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" /> <input type="hidden" id="com.salesforce.visualforce.ViewStateMAC" name="com.salesforce.visualforce.ViewStateMAC" value="ALnJJ/oYHCs1nQp7niGii4v7S79T" /> <input type="hidden" id="com.salesforce.visualforce.ViewStateCSRF" name="com.salesforce.visualforce.ViewStateCSRF" value="nqn7JQ6TsGoIEtk0wAaXu5E9qlX5MKGhfA5FYlG0x2riGBq2e2JVVWWMnL3Zy1K0wkioJdIqcF9zsGFumUtkfGNwR8STF_wc0XjAKeEhaNYosBaF56rVZVIf0BClq12jKCbzl7kC8pczAP3BACqYEl3WCio=" /> </span> <meta id="Ajax-Response" name="Ajax-Response" content="true" /> </body> </html>
Here is the updated method:
public PageReference updateChildAccountOwnership() { Account parent = [Select Id, OwnerId From Account where Id =: parentAcct.ParentId]; List<Account> childAccts = [Select Id, OwnerId From Account where ParentId =: parent.Id]; parent.ownerId = acctToByParent.ownerId; DbUtil.save(parent); List<Account> lst = new List<Account>(); for (Account acct: childAccts) { acct.OwnerId = acctToByParent.OwnerId; lst.add(acct); } DbUtil.save(lst); ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Account ownership updated successfully.'); ApexPages.addMessage(msg); PageReference pr = new PageReference(System.currentPageReference().getURL()); pr.setRedirect(true); return pr; //return null; }
Hey
You can either try copying the text I've created in blue(within the code box), and if that doesn't work try:
PageReference pr = System.Page.WhateverYourPageNameIs;
pr.setRedirect(true);
return pr;
Wes
Thanks Wes,
Referencing the apex page name worked and cleared the inputFields. As you noted, the message no longer displays. Do you have a code example of passing a parameter in the Page Referecne to display the success message? I was trying a couple of different ways but have not been successful in getting the message to display.
Thanks.
No problem buddy.
Unfortunately it becomes quite a manual process after this, eg.
Before you return the page reference attach a parm,
pr.getParameters().put('msg','0');
Then when the page loads fetch this parm, in the constructor maybe,
String msg = ApexPage.CurrentPage().getParameters().get('msg');
And then you'd have to style a visualforce tag on the page to display it,
<apex:outputPanel layout="block" style="...." rendered="{!NOT(ISNULL(msg))}">
<apex:outputText value="..." />
</apex:outputPanel>
Not so neat I know, and if anyone has a smarter way I'm keen to hear it.
Wes
Thanks sfdcfox...I set the private fields to null, set an id for the form tag element and added that value to the re-render attributue on the command button element. It cleared the fields when the page posts back. However, I did encounter small issue, the pageMessage in all three actionRegions are displaying.
VF page code:
<apex:page Controller="AccountMaintenanceController"> <h1>Manage Salesperson Territory Assignments</h1> <apex:form id="AccountMaintenance" > <apex:actionRegion > <apex:pageBlock title="Update Account and Opportunity Ownership" mode="edit"> <apex:pageBlockButtons > <apex:commandButton action="{!updateAccountsOpportunities}" value="Update" rerender="UpdateAccountsOpportunitiesSuccessMsg, AccountMaintenance" status="AccountsOpportunitiesLoadingStatus" /> <apex:commandButton action="{!cancel}" value="Cancel" immediate="true" /> </apex:pageBlockButtons> <apex:pageMessages rendered="true" id="UpdateAccountsOpportunitiesSuccessMsg" /> <apex:actionStatus id="AccountsOpportunitiesLoadingStatus"> <apex:facet name="start"> Updating records... <img src="{!$Resource.AjaxLoading}"/> </apex:facet> </apex:actionStatus> <apex:pageBlockSection title="Used to transfer ownership of accounts and opportunities from one sales rep to another" columns="1"> <apex:pageBlockSectionItem > <apex:outputLabel value="Change Owner From" for="old_account_owner" /> <apex:inputField value="{!AccountFrom.ownerId}" id="old_account_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="Change Owner To" for="new_account_owner" /> <apex:inputField value="{!AccountTo.ownerId}" id="new_account_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="Account Ownership" for="acct_owner" /> <apex:inputCheckbox value="{!acctChkbox}" id="acct_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="Opportunity Ownership" for="oppy_owner" /> <apex:inputCheckbox value="{!oppyChkbox}" id="oppy_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="Opportunity Email" for="oppy_email" /> <apex:inputCheckbox value="{!oppyEmailChkbox}" id="oppy_email" /> </apex:pageBlockSectionItem> </apex:pageBlockSection> </apex:pageBlock> </apex:actionRegion> <apex:actionRegion > <apex:pageBlock title="Update Specific District or Account Ownership" mode="edit"> <apex:pageBlockButtons > <apex:commandButton action="{!updateChildAccountOwnership}" value="Update" rerender="UpdateChildAccountsSuccessMsg, AccountMaintenance" status="ChildAccountsLoadingStatus" /> <apex:commandButton action="{!cancel}" value="Cancel" immediate="true" /> </apex:pageBlockButtons> <apex:actionStatus id="ChildAccountsLoadingStatus"> <apex:facet name="start"> Updating records... <img src="{!$Resource.AjaxLoading}"/> </apex:facet> </apex:actionStatus> <apex:pageMessages rendered="true" id="UpdateChildAccountsSuccessMsg" /> <apex:pageBlockSection title="Used to update owner of specified account and related child accounts" columns="1"> <apex:pageBlockSectionItem > <apex:outputLabel value="Change Owner To" for="new_account_owner" /> <apex:inputField value="{!AccountToByParent.ownerId}" id="new_account_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="District Account to update" for="account_name" /> <apex:inputField value="{!DistrictAccount.parentId}" id="account_name" required="true" /> </apex:pageBlockSectionItem> </apex:pageBlockSection> </apex:pageBlock> </apex:actionRegion> <apex:actionRegion > <apex:pageBlock title="Update Account Ownership by State" mode="edit"> <apex:pageBlockButtons > <apex:commandButton action="{!updateAccountByState}" value="Update" rerender="UpdateOwnerByStateSuccessMsg, AccountMaintenance" status="StateLoadingStatus" /> <apex:commandButton action="{!cancel}" value="Cancel" immediate="true" /> </apex:pageBlockButtons> <apex:pageMessages rendered="true" id="UpdateOwnerByStateSuccessMsg" /> <apex:actionStatus id="StateLoadingStatus"> <apex:facet name="start"> Updating records... <img src="{!$Resource.AjaxLoading}"/> </apex:facet> </apex:actionStatus> <apex:pageBlockSection title="Used to update owner of accounts by selected state" columns="1"> <apex:pageBlockSectionItem > <apex:outputLabel value="Change Owner To" for="new_account_owner" /> <apex:inputField value="{!AccountToByState.ownerId}" id="new_account_owner" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputLabel value="State" for="state" /> <apex:inputField value="{!State.State__c}" id="state" required="true" /> </apex:pageBlockSectionItem> </apex:pageBlockSection> </apex:pageBlock> </apex:actionRegion> </apex:form> </apex:page>
controller class code:
public class AccountMaintenanceController { private Account acctFrom = new Account(); private Account acctTo = new Account(); private Account acctToByParent = new Account(); private Account parentAcct = new Account(); private Account acctToByState = new Account(); private Account state = new Account(); public PageReference updateChildAccountOwnership() { Account parent = [Select Id, OwnerId From Account where Id =: parentAcct.ParentId]; List<Account> childAccts = [Select Id, OwnerId From Account where ParentId =: parent.Id]; parent.ownerId = acctToByParent.ownerId; DbUtil.save(parent); List<Account> lst = new List<Account>(); for (Account acct: childAccts) { acct.OwnerId = acctToByParent.OwnerId; lst.add(acct); } DbUtil.save(lst); ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Account ownership updated successfully.'); ApexPages.addMessage(msg); acctToByParent.OwnerId = null; parentAcct.parentId = null; return null; } public PageReference updateAccountByState() { List<Account> accts = [Select Id, OwnerId From Account where state__c =: state.state__c]; List<Account> lst = new List<Account>(); for (Account acct: accts) { acct.OwnerId = acctToByState.OwnerId; lst.add(acct); } DbUtil.save(lst); ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Account ownership updated successfully.'); ApexPages.addMessage(msg); acctToByState.ownerId = null; state.state__c = null; return null; } public PageReference updateAccountsOpportunities() { List<Account> acctsFrom = [Select Id, OwnerId From Account where ownerId =: acctFrom.ownerId]; List<Opportunity> oppys = [Select Id, OwnerId From Opportunity where ownerId =: acctFrom.ownerId]; List<Account> acctsToUpdate = new List<Account>(); for (Account acct: acctsFrom) { acct.OwnerId = acctTo.OwnerId; acctsToUpdate.add(acct); } if (acctChkbox) { DbUtil.save(acctsToUpdate); } List<Opportunity> oppysToUpdate = new List<Opportunity>(); for (Opportunity op: oppys) { op.OwnerId = acctTo.ownerId; oppysToUpdate.add(op); } if (oppyChkbox) { DbUtil.save(oppysToUpdate); } List<Opportunity> oppysCommissionSalespersonToUpdate = new List<Opportunity>(); for (Opportunity op: oppys) { op.Commission_Salesperson__c = acctTo.ownerId; oppysCommissionSalespersonToUpdate.add(op); } if (oppyEmailChkbox) { DbUtil.save(oppysCommissionSalespersonToUpdate); } ApexPages.Message msg = new ApexPages.message(ApexPages.Severity.INFO, 'Records updated successfully.'); ApexPages.addMessage(msg); acctFrom.ownerId = null; acctTo.ownerId = null; acctChkbox = false; oppyChkbox = false; oppyEmailChkbox = false; return null; } public PageReference cancel() { PageReference newpage = new PageReference(System.currentPageReference().getURL()); newpage.setRedirect(true); return newpage; } public Account getAccountFrom() { return acctFrom; } public Account getAccountTo() { return acctTo; } public Boolean acctChkbox { get; set; } public Boolean oppyChkbox { get; set; } public Boolean oppyEmailChkbox { get; set; } public Account getAccountToByParent() { return acctToByParent; } public Account getDistrictAccount() { return parentAcct; } public Account getAccountToByState() { return acctToByState; } public Account getState() { return state; } }
Thanks.
Hi!
My inglish is very bad, sorry....
the problem is solved with the following code