2009-12-22 23 views
0

我使用ASP.NET 2.0与SQL Server 2005值不在数据库中

我的页面正确保存有一个文本框,其中的TextMode =“多行” ......见下文

alt text http://www.erateusa.com/Textbox.bmp

现在,当我保存这个文本在我当然数据库它不与任何HTML标记保存它,因此当我从数据库中读取该值是回来为1号线,如....

Hello字,它需要看起来像这样。谢谢!

但是我希望它像使用者输入那样显示。是否没有开箱即用的控件能够为我做到这一点,而不是使用Ajax或jQuery?

在此先感谢!

+0

如何显示您阅读的内容?如果以HTML格式输出它,换行符不会被渲染,它只是一个空格。 – 2009-12-22 06:48:36

+0

我所做的是我从数据库中取值,并将其设置为:lblValue = ValueFromDatabase – Etienne 2009-12-22 06:51:03

+0

如果数据为html,则存储html而不是“数据”。 – jim 2009-12-22 07:16:16

回答

3

那样?

myString.Replace("\n", "<br />"); 
+1

问题出现在显示标签中的数据而不是文本框中。文本框以“纯文本”显示文本,标签(以跨度显示)以HTML格式显示。纯文本使用Char(13)进行回车,其中HTML使用字符序列“
”。 他们不是在说同一种“语言”。艾哈迈德的解决方案是他们之间翻译的一种方式。 – eidylon 2009-12-22 07:43:16

1

从您的评论到我的问题,问题不在于数据库没有正确存储您的数据。而是你以不反映数据真实表示的方式显示它。

正如我在你的文章中评论的那样,“如果你将它输出为HTML,换行符不会被渲染,它只是一个空格。”

艾哈迈德已经回答了将以HTML格式呈现您的换行符的方法之一。

如果您将检索值分配到文本区域或多行文本框中,则将显示换行符而不操作字符串。

+0

如何或在哪里为ASP.NET文本框分配检索值? – Etienne 2009-12-22 08:04:01

+0

'textboxMultiline.Text = ValueFromDatabase' – 2009-12-22 09:07:15

+0

MMMM,我不能写这个标签?因为我不想在文本框中显示它。 – Etienne 2009-12-22 11:09:58

1

您应该将CRLF字符存储在数据库中,因为这些是您的数据的一部分,并且在显示时将它们替换为BR标记,因为它是HTML /演示文稿问题。

这同样适用于多个空间和其他数据。例如,您是否期望在文本框中使用括号?