I have a custom field called Current_Address__c which is of datatype textarea.
I need to populate this field in the format below. ie a newline char after street and another newline after zip.
street City state Zip Country
The values of city state zip country etc are been taken from contact object. I dont want to use this as a formula field. So i need to populate it in my controller and display it on my VF page.
I am trying to add a newline char by using the code below
this.customobj.Current_Address__c = currentStreet + '\\n ' + currentCity + ' ' + currentState + ' ' + currentZIP + '\\n ' + currentCountry ;
i had also used \n instead of \n.
It still show the field in one line instead of 3 lines
EDIT
I got this working using the following code. I would accept mathews answer as it would work with outputfield.
currentAddress = currentStreet;
currentAddress += '\r\n';
currentAddress += currentCity + + ' ' + currentState + ' ' + currentZIP ;
currentAddress += '\r\n';
currentAddress += currentCountry;
This works only if you use +=. not sure why this happens
I think I found the issue, you have two escape character slashes (\\n
), but only one is needed because the slash in \n
does not need to be escaped in this context.
Also, Salesforce saves a new line as \r\n
. Try this:
this.customobj.Current_Address__c
= currentStreet + ' \r\n'
+ currentCity + ' ' + currentState + ' ' + currentZIP + ' \r\n'
+ currentCountry;
This method works when using an <apex:outputfield>
with an sObject field.
<apex:outputtext value="{!myCustomSObject__c.Address__c}"/>
If you're using a different Visualforce Component, it won't work. Visualforce renders the new line in HTML when using a <apex:outputtext>
Component, but HTML ignores new lines. If you use a <br/>
tag, Visualforce renders it as <br/>
.
The best solution I could come up with for rendering a variable that has new lines in it (rather than an sObject field) is to use a disabled <apex:inputtextarea>
.
<apex:inputtextarea value="{!myAddress}" disabled="true" readonly="true">
</apex:inputtextarea>