Laden...

Zeilenumbruch und andere Exoten

Erstellt von TiltonJH vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.880 Views
TiltonJH Themenstarter:in
87 Beiträge seit 2006
vor 13 Jahren
Zeilenumbruch und andere Exoten

Hallo,

Kontext:
Ich möchte Text den ich aus meinen DB beziehe in einem GridView darstellen. Funzt auch alles Prima.

Problem:
Der Text hat im Original Zeilenumbrüche. Diese möchte ich natürlich auch mit darstellen.

Meine Lösung:


text.Replace(Environment.NewLine, "<br />")

Das nächte Problem:
Jetzt wird Text in der Form dargestellt:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<br />Etiam id erat at tellus tincidunt mollis. Praesent mattis tortor eu est.<br />Donec congue sagittis arcu. Etiam viverra erat ut nulla.<br />Donec hendrerit tortor et metus. Maecenas rhoncus dapibus leo. Donec vel ipsum ut felis vestibulum varius. Mauris ipsum nisl, accumsan eget, gravida non, mattis nec, nunc. Pellentesque pellentesque erat a arcu. Nulla semper, metus ac<br />volutpat congue, ipsum felis mattis felis, sed placerat dolor velit ac urna. Nunc convallis. Donec non ligula nec nunc accumsan consequat.<br />Ut in mauris. Vestibulum vitae neque sed eros convallis molestie. Phasellus quis ligula non tortor<br />mattis mollis. Vestibulum sit amet ipsum ut ligula iaculis tincidunt.

Soll heißen ASP konvertiert löblicher weise meinen Text in eine Web-Darstellbare-Form.
Frage:
Wie schaffe ich es die "<br />" erst einzubauen nach dem die Web-Darstellbare-Form durch ist?
Oder Welche Methode ist dafür zuständig und kann die Überladen werden?

Danke.

MfG

Tilton

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

spontan fällt mir ein ein TemplateField im GridView anzulegen, das ein Literal-Control im ItemTemplate enthält.
Diesem kannst Du in der Text-Eigenschaft HTML-Markup verpassen, und der wird dann (in der Standardeinstellung) nicht codiert.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

3.971 Beiträge seit 2006
vor 13 Jahren

Lass die Zeilenumbrüche so wie sie sind und geb deinen Text einfach in einem <pre>...</pre>-Tag aus. Vorteil, es werden auch fürs web "überflüssige" Leerzeichen beibehalten.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Vorteil, es werden auch fürs web "überflüssige" Leerzeichen beibehalten.

Das ist natürlich wahr.
Dann sollte man in dem PRE noch per CSS die Schriftart anpassen, wenn nicht in fixed-width gerendert werden soll.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

TiltonJH Themenstarter:in
87 Beiträge seit 2006
vor 13 Jahren

Vielen dank.

Die Mischung machst. 8)

Den <pre></pre>-Tag kannte ich noch gar nich. Den und ein asp:Literal (innerhalb eines TemplateField) welches den Text aufnimmt sind die Lösung des ganzen.


<asp:TemplateField HeaderText="<%$ Resources:Lang,Message %>" ItemStyle-VerticalAlign="Top">
	<ItemTemplate>
		<pre><asp:Literal runat="server" Text='<%# Eval("Message") %>' /></pre>
	</ItemTemplate>
</asp:TemplateField>

MfG

Tilton

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

TiltonJH Themenstarter:in
87 Beiträge seit 2006
vor 13 Jahren

Nach ein wenig rumtesten...

Das <pre></pre>-Tag hat einen Nachteil, es erzwingt einen Zeilenumbruch vor sich.

Lösen lässt sich das ganze auch über CSS mit dem white-space-CSS-Element, welches diesen Nachteil nicht hat und man kann auch noch noch ein paar mehr Einstellungen vornehmen als mit einem reinen <pre></pre>-Tag.


<asp:TemplateField HeaderText="<%$ Resources:Lang,Message %>" ItemStyle-VerticalAlign="Top">
	<ItemTemplate>
		<asp:Label runat="server" Text='<%# Eval("Message") %>' CssClass="editor" />
	</ItemTemplate>
</asp:TemplateField>


span.editor
{ 
	white-space:pre-wrap;
}

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra