2012-04-10 19 views
6

मेरे पास एक कस्टम फ़ील्ड है जिसे Current_Address__c कहा जाता है जो डेटाटाइप टेक्स्टरेरा का है।टेक्स्ट क्षेत्र पर न्यूलाइन कैरेक्टर

मुझे इस प्रारूप को नीचे दिए प्रारूप में पॉप्युलेट करने की आवश्यकता है। यानी सड़क के बाद एक न्यूलाइन चार और ज़िप के बाद एक और नई लाइन।

सड़क सिटी राज्य पिन देश

के शहर राज्य ज़िप देश आदि मूल्यों संपर्क वस्तु से लिया गया गया है। मैं इसे फॉर्मूला फ़ील्ड के रूप में उपयोग नहीं करना चाहता हूं। तो मुझे इसे अपने नियंत्रक में पॉप्युलेट करने और इसे अपने वीएफ पेज पर प्रदर्शित करने की आवश्यकता है।

मैं नीचे

this.customobj.Current_Address__c = currentStreet + '\\n ' + currentCity + ' ' + currentState + ' ' + currentZIP + '\\n ' + currentCountry ; 

कोड का उपयोग करके एक नई पंक्ति चार जोड़ने के लिए मैं भी \ n \ n के बजाय इस्तेमाल किया था कोशिश कर रहा हूँ।

यह अभी भी करने के बजाय एक लाइन 3 लाइनों

संपादित

में क्षेत्र दिखाने मैं निम्नलिखित कोड का उपयोग कर इस काम कर गया। मैं गणित के जवाब को स्वीकार करता हूं क्योंकि यह आउटपुटफील्ड के साथ काम करेगा।

   currentAddress = currentStreet; 
      currentAddress += '\r\n'; 
      currentAddress += currentCity + + ' ' + currentState + ' ' + currentZIP ; 
      currentAddress += '\r\n'; 
      currentAddress += currentCountry; 

यह केवल तभी काम करता है जब आप + = का उपयोग करते हैं। यकीन नहीं कि ऐसा क्यों होता

उत्तर

7

मुझे लगता है कि मैं इस मुद्दे पाया, तो आप दो भागने चरित्र स्लैश (\\n) है, लेकिन क्योंकि \n में स्लेश इस संदर्भ में भाग निकले जाने की जरूरत नहीं है केवल एक की जरूरत है।

इसके अलावा, सेल्सफोर्स \r\n के रूप में एक नई लाइन बचाता है। जब एक sObject क्षेत्र के साथ एक <apex:outputfield> का उपयोग कर

this.customobj.Current_Address__c 
    = currentStreet + ' \r\n' 
    + currentCity + ' ' + currentState + ' ' + currentZIP + ' \r\n' 
    + currentCountry; 

इस विधि काम करता है: यह कोशिश करो।

<apex:outputtext value="{!myCustomSObject__c.Address__c}"/> 

यदि आप एक अलग विजुअलफोर्स घटक का उपयोग कर रहे हैं, तो यह काम नहीं करेगा। <apex:outputtext> घटक का उपयोग करते समय विजुअलफोर्स एचटीएमएल में नई लाइन प्रस्तुत करता है, लेकिन एचटीएमएल नई लाइनों को अनदेखा करता है। यदि आप <br/> टैग का उपयोग करते हैं, तो विजुअलफोर्स इसे &lt;br/&gt; के रूप में प्रस्तुत करता है।

सबसे अच्छा समाधान मैं एक चर को प्रतिपादित करने के लिए आ सकता हूं जिसमें इसमें नई लाइनें हैं (एसओब्जेक्ट फ़ील्ड के बजाय) एक अक्षम <apex:inputtextarea> का उपयोग करना है।

<apex:inputtextarea value="{!myAddress}" disabled="true" readonly="true"> 
</apex:inputtextarea> 
+0

इम ये समस्या हो रही। मैंने \ r \ n, \ n, \\ n और यहां तक ​​कि
और उनमें से कोई भी काम नहीं किया! – raym0nd

+0

डेटा प्रदर्शित करने के लिए आप किस प्रकार का टैग उपयोग कर रहे हैं? '<शीर्ष: आउटपुटफील्ड> 'मेरे लिए काम किया। –

+0

<शीर्ष: outputText> – raym0nd

3

हाल ही में मैं एक ही समस्या थी, मैं एक समाधान है कि मैंने पाया यह था में नई लाइनों Reder करना चाहता था, यह एक छोटे मुश्किल है, लेकिन यह काम करता है:

<apex:outputText value="{!SUBSTITUTE(JSENCODE(textVariableThanContainsNewLines), '\\n', '<br/>')}" escape="false"/> 
0

इस प्रयास करें :

नियंत्रक

public List<String> getLetterLines() { 
    if (letterBody == null) { 
     return new List<String>(); 
    } 
    return letterBody.split('\n'); 
} 

VF पेज:

<apex:repeat value="{!letterLines}" var="letterLine"> 
    <apex:outputText value="{!letterLine}" /><br /> 
</apex:repeat> 

मज़े करो!

-2

value = "टिप्पणी: {! स्थानापन्न (JSENCODE (textVariableThanContainsNewLines), '\ r \ n', '
')}"

+2

जवाब देने से पहले कुछ बातें सोचने के लिए: 1) आपका उत्तर ** पोस्ट में ** नई जानकारी जोड़ना चाहिए, न सिर्फ किसी और के डुप्लिकेट करें, 2) आपको समझाया जाना चाहिए कि उत्तर समस्या का हल क्यों करता है, और 3) आपको चाहिए अपने उत्तर को अच्छी तरह से प्रारूपित करें (कोड ब्लॉक में कोड डालें)। – Ajean

संबंधित मुद्दे