【问题标题】:Value from text box not saved properly in database文本框中的值未正确保存在数据库中
【发布时间】:2009-12-22 06:43:54
【问题描述】:

我正在使用带有 SQL Server 2005 的 ASP.NET 2.0。

我的页面有一个文本框,其中 TextMode="MultiLine"......见下文

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

现在,当我将此文本保存在我的数据库中时,它当然不会使用任何 HTML 标记保存它,因此当我从数据库中读取该值时,它会以 1 行形式返回,例如......

你好词,它需要看起来像这样。谢谢!

但我希望它像用户输入的一样显示出来。是否没有开箱即用的控件可以为我做这件事,而不是我使用 Ajax 或 jQuery?

提前致谢!

【问题讨论】:

  • 如何显示您阅读的内容?如果将其输出为 HTML,则不会呈现换行符,它只是一个空格。
  • 我所做的就是从数据库中获取值并将其设置为:lblValue = ValueFromDatabase
  • 如果数据是 html,则存储 html 而不是“数据”。
  • 如何获取ASP.NET文本框的HTML值?
  • 你将不得不插入
    代替 environment.newline

标签: c# asp.net sql vb.net


【解决方案1】:

喜欢吗?

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

【讨论】:

  • 问题在于在标签而不是文本框中显示数据。文本框以“纯文本”显示文本,标签(呈现为跨度)以 HTML 显示。纯文本使用 Char(13) 进行回车,而 HTML 使用字符序列“
    ”。他们说的不是同一种“语言”。 Ahmet 的解决方案是在它们之间进行转换。
【解决方案2】:

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

正如我在您的帖子中评论的那样,“如果您将其输出为 HTML,则不会呈现换行符,它只是一个空格。”

Ahmet 所回答的是将换行符呈现为 HTML 的方法之一。

如果将检索值分配给文本区域或多行文本框,则无需操作字符串即可显示换行符。

【讨论】:

  • 如何或在何处为 ASP.NET 文本框分配检索值?
  • textboxMultiline.Text = ValueFromDatabase
  • MMMM,我不能把这个写到标签上??因为我不想在文本框中显示它。
  • 要写入标签,您必须将换行符替换为&lt;br /&gt;s。
  • 但是当我将文本框的值保存到数据库中时,没有换行标记。我这样保存.....ValuetoDatabase = txtName.text
【解决方案3】:

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

这同样适用于多个空格和其他数据。例如,您的文本框中是否有预期括号?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多