You need to sign in to do that
Don't have an account?
Collen Mayer 6
Problem passing value from Visualforce page to controller
Hi All,
I'm need to pass a recordtype id from a visualforce page to my controller extension. However debug log is showing the variable in the controller I'm trying to set is NULL (not getting the value from the visualforce page). Here's what I've tried. Any help/feedback would be greatly appreciated.
Best,
Collen
My test page:
My controller:
I'm need to pass a recordtype id from a visualforce page to my controller extension. However debug log is showing the variable in the controller I'm trying to set is NULL (not getting the value from the visualforce page). Here's what I've tried. Any help/feedback would be greatly appreciated.
Best,
Collen
My test page:
<apex:page standardController="Satisfaction_Surveys__c" extensions="CreateSatisfactionSurvey2"> <apex:sectionHeader title="Satisfaction Survey" subtitle="Please rate the service you receieved."/> <apex:form > <apex:pageMessages /> <apex:pageBlock title="Survey Response"> <apex:pageBlockButtons > <apex:commandButton action="{!save}" value="Save"/> </apex:pageBlockButtons> <apex:pageBlockSection showHeader="false" columns="2"> <apex:inputField value="{!survey.Access_Comm_Resources__c}" /> <apex:param assignTo="{!recordtypetext}" value="01236000000xk08" name="recordtypetext"/> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>
My controller:
public class CreateSatisfactionSurvey2 { public ApexPages.StandardController stdCntrlr {get; set;} public string recordtypetext {get;set;} public Satisfaction_Surveys__c survey {get;set;} public CreateSatisfactionSurvey2 (ApexPages.StandardController controller) { stdCntrlr = controller; if (survey == null) survey = new Satisfaction_Surveys__c (); } // save button is clicked public PageReference save() { try { recordtypetext = ApexPages.CurrentPage().getParameters().get('recordtypetext'); survey.RecordTypeId = recordtypetext; system.debug(recordtypetext); insert survey; // inserts the new record into the database } catch (DMLException e) { ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error creating new survey.')); return null; } // if successfully inserted new survey, then displays the thank you page. return Page.Survey_Create_Thankyou; } }
It is just because you have a very specific need (you sould have get the following tricks from another forum perhaps yet).
Anyway, that could also help other people because that cannot work without the used tricks in the code below.
Tell me if that works fine for: return Page.Survey_Create_Thankyou;
<apex:commandButton action="{!save}" value="Save" rerender="bloc">
<apex:param assignTo="{!recordtypetext}" value="01236000000xk08" name="recordtypetext"/>
</apex:commandButton>
<apex:pageBlockSection showHeader="false" columns="2" id="bloc" >
<apex:actionRegion> ... </apex:actionRegion> // the weird part could be changed You will get your constant value passed.
Best regards
Alain
All Answers
I don't understand clearly the constant value recordtypetext but you can pass this value by the URL when calling your VFPage.
Wait and see for other solutions.
.../apex/myVFPpage?recordtypetext=01236000000xk08
recordtypetext = ApexPages.CurrentPage().getParameters().get('recordtypetext');
<apex:inputHidden value="{!recordtypetext}" />
Regards
Alain
I am still a bit baffled that I can't assign the value in the visualforce page without including in the link. Essentiallly I'm going to have about 15 visualforce pages that use the same controller, but each page creates a record with a different record type. My plan was to have each page assign the corresponding recordtypeid value and pass it to the controller to create the record. I'm trying to figure out how to have 15 pages but not have to have 15 controllers.
If I can't do this in the visualforce page, is there a way to differentiate in my controller which page referenced the controller: if page 1, recordtypeid = 'aaaaaaaaaaaaa', if page 2, recordtypeid = 'bbbbbbbbbbb', etc? I'm a bit over my head here so I'd appreciate any thoughts from you or others.
It is just because you have a very specific need (you sould have get the following tricks from another forum perhaps yet).
Anyway, that could also help other people because that cannot work without the used tricks in the code below.
Tell me if that works fine for: return Page.Survey_Create_Thankyou;
<apex:commandButton action="{!save}" value="Save" rerender="bloc">
<apex:param assignTo="{!recordtypetext}" value="01236000000xk08" name="recordtypetext"/>
</apex:commandButton>
<apex:pageBlockSection showHeader="false" columns="2" id="bloc" >
<apex:actionRegion> ... </apex:actionRegion> // the weird part could be changed You will get your constant value passed.
Best regards
Alain
Best,
Collen