You need to sign in to do that
Don't have an account?
Justin Mitchell
Need help passing multi-line textarea value from one visualforce page to an embedded visualforce page
I have two visualforce pages.
Page #1 has an editable apex:inputTextArea field on it, on the left side.
Page #2 is rendered as a pdf, and it is embedded into page #1 on the right side. Displayed in page #2 there is a Visualfore component. The component needs to include the text from the inputTextArea on page #1.
There is a button on page #1 (Generate Preview) that should update page #2 with any changes made in the text area.
How can I do this?
Here's what I've tried:
-Passing the text area as a variable in the url does not work, as page breaks in the are not maintained
-I am able to get the desired result by creating a PageReference method in the controller, then having the button action use that method, but that redirects me to page #2 when I click the button, as opposed to letting me reload it as an iframe inside page #1
Here's my super simplified code:
Page #1:
Component:
There's GOT to be a better way to do this but this is the only way I know how, and now that I need text area fields, it doesn't even work. Help!
Page #1 has an editable apex:inputTextArea field on it, on the left side.
Page #2 is rendered as a pdf, and it is embedded into page #1 on the right side. Displayed in page #2 there is a Visualfore component. The component needs to include the text from the inputTextArea on page #1.
There is a button on page #1 (Generate Preview) that should update page #2 with any changes made in the text area.
How can I do this?
Here's what I've tried:
-Passing the text area as a variable in the url does not work, as page breaks in the are not maintained
-I am able to get the desired result by creating a PageReference method in the controller, then having the button action use that method, but that redirects me to page #2 when I click the button, as opposed to letting me reload it as an iframe inside page #1
Here's my super simplified code:
Page #1:
<apex:page showHeader="true" sidebar="true" controller="pdfTest_Class" applyBodyTag="false" tabstyle="opportunity" title="PDF Test"> <apex:form > <apex:pageblock > <apex:pageBlockButtons location="top" > <apex:commandButton value="Generate Preview" reRender="preview" /> </apex:pageBlockButtons> <apex:outputPanel layout="block"> <div style="width:50%; float:left;"> <apex:pageblock mode="edit"> <apex:pageblocksection columns="1" > <apex:pageBlockSectionItem > <apex:outputlabel value="Company Name" /> <apex:inputText value="{!companyName}" /> </apex:pageBlockSectionItem> <apex:pageBlockSectionItem > <apex:outputlabel value="Description" /> <apex:inputTextarea value="{!description}" cols="30" rows="5" /> </apex:pageBlockSectionItem> </apex:pageblocksection> </apex:pageblock> </div> <div style="width:50%; float:right;" > <apex:pageBlock id="preview"> <apex:pageBlockSection columns="1"> <apex:iframe src="pdfTest_PreviewPage?companyName={!URLENCODE(companyName)}&description={!URLENCODE(description)}" height="300"/> </apex:pageBlockSection> </apex:pageBlock> </div> </apex:outputPanel> </apex:pageblock> </apex:form> </apex:page>Controller:
public with sharing class pdfTest_Class { public String companyName {get; set;} public String description {get; set;} public pdfTest_Class() { companyName = '<enter company name>'; description = '<enter description>' } }Page #2:
<apex:page showHeader="false" sidebar="false" applyBodyTag="false" renderAs="pdf"> <c:pdfTest_Component companyName="{!$CurrentPage.parameters.companyName}" description="{!$CurrentPage.parameters.description}" /> </apex:page>
Component:
<apex:component > <apex:attribute name="companyName" description="Company Name" type="String" /> <apex:attribute name="description" description="Description" type="String" /> The name of the company is {!companyName} <br /> Description: <br /> {!description} </apex:component>
There's GOT to be a better way to do this but this is the only way I know how, and now that I need text area fields, it doesn't even work. Help!