使用来自Multi-Line-TextBox的LineBreak的ASP.Net文本保存在数据库中

时间:2011-02-03 07:55:37

标签: asp.net string ntext

我的新社区页面中有PrivateMessage-System。

我有一个私人消息文本的多行文本框。 我将这个文本保存在一个字符串中,这个字符串在一个ntext SQL-Coloumn中。 我从字符串中的ntext SQL-Coloum中读取此文本并将其显示在标签中。

当我在多行文本框中使用“Enter”-Key进行5次换行时,换行符将在标签中消失。

我不知道他们在哪里迷路了,我做错了什么。 任何想法?

3 个答案:

答案 0 :(得分:23)

首先,它实际上是否将换行符保存到您的表中?如果是这样,它将它们保存为什么,例如\ r \ n或CRLF或什么?

您的标签输出html,因此唯一可以创建中断的是<br />标记。因此,您需要查找并替换数据库中保存的内容:

Label1.Text = someDatabaseText.Replace("\r\n", "<br />");

或者甚至更好,在将它保存到数据库之前执行.Replace():

someDatabaseField = TextBox1.Text.Replace("\r\n", "<br />");

答案 1 :(得分:3)

您可以使用CSS解决此问题。将此CSS分配给您的标签:

white-space:pre-wrap;

答案 2 :(得分:2)

这也有效:

lbl_PostContent.Text = lbl_PostContent.Text.Replace(vbCrLf, "<br />")