Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: manderson am 13.09.12 - 12:59:00

Titel: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: manderson am 13.09.12 - 12:59:00
Grüße!

Ich habe eine Maske, mit einfachen Textfelder, erzeuge ich dort per Return Taste einen Umbruch / neue Zeile im Text, wird dies leider nicht in einem berechneten Feld unter Xpages per <br/> umgesetzt / ausgegeben. Alles wird einfach hintereinander weg ausgegeben, was leider sehr unschön ist.

Mit folgender idee kam ich leider nicht weit:

Code
text.replace(@Char(13),'<br/>');

Gibt es ein erfolgreicheren Weg? :)

Titel: Re: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: Sven Hasselbach am 13.09.12 - 13:12:36
Hast Du in deinem berechneten Feld schon den Content type auf HTML gesetzt, wenn Du den Zeilenumbruch mit <br>-Tags ersetzt hast?

EDIT:
Code
	<xp:text escape="false" id="computedField1">
		<xp:this.value><![CDATA[#{javascript:
			var txt = "Ich\nbin\nein\nText.";
			txt = txt.replace(@Char(10),'<br/>');
			txt = txt.replace(@Char(13),'<br/>');
			txt
		}]]>
		</xp:this.value>
	</xp:text>
Titel: Re: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: manderson am 13.09.12 - 13:34:04
Code
<xp:text escape="false" id="computedField1">
		<xp:this.value><![CDATA[#{javascript:var doc = view1.getLastDocument();
var text = doc.getItemValueString('test');
text.replace(@Char(13),'<br/>')
text.replace(@Char(10),'<br/>')

return text;}]]></xp:this.value>
	</xp:text>

Ja habe ich....
Titel: Re: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: Sven Hasselbach am 13.09.12 - 13:38:57
Und im Feld "test" sind die Werte auch mit Zeilenumbruch gespeichert?

Du hast also im Browser dann die Ausgabe

Code
Ich<br/>bin<br/>ein</br>Text.

? Oder fehlen die Zeilenumbrüche?
Titel: Re: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: manderson am 13.09.12 - 13:43:55
Also im Feld" test" ist das ganze ohne <br>, also so:

Zitat
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.

Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.

Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a,

In der Ausgabe wird das ganze hintereinander weg dagestellt, also so:

Zitat
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, 

Im Quelletxt des Browsers / Clients ist das ganze wie im feld formatiert,  aber halt ohne <br>
Titel: Re: Textfeld auslesen, Return erzeugt <br/>
Beitrag von: manderson am 13.09.12 - 14:02:00
Ah, Problem gelöst mit:

Code
<xp:text escape="false" id="computedField1">
		<xp:this.value><![CDATA[#{javascript:var doc = view1.getLastDocument();
var text = doc.getItemValueString('test');

var text = @ReplaceSubstring(text,@Char(10), '<br/>');

return text;}]]></xp:this.value>
	</xp:text>

 ;D