【问题标题】:Newline in textarea in DetailsView (asp.net)DetailsView(asp.net)中文本区域中的换行符
【发布时间】:2009-07-24 19:04:05
【问题描述】:

我刚刚更新了一个页面以在 asp.net 中使用 DetailsView。它包括一个多行文本框,现在位于详细信息视图的 EditItemTemplate 中。问题是,当输出这些数据(存储在数据库中)时,我用
替换了 vbCrLf (一个新的行内容 --> VB,回车,换行),以前效果很好,但现在它在细节视图中就像 vbCrLf 不存在并且在替换(str,vbCrLf,“
”)之后,而不是在文本框有换行符的地方出现 HTML 中断(
) ,这一切都只显示在一行中。我怎样才能解决这个问题?谢谢。

【问题讨论】:

    标签: asp.net newline detailsview


    【解决方案1】:

    改用 Environment.NewLine

    【讨论】:

    • 感谢您的建议,但这似乎也不起作用。 linq 会用其他东西代替它吗?因为 textarea 似乎仍然知道换行符在那里,但替换 vbCrLf、Environment.NewLine 等似乎并不知道它在那里。
    • 我不知道 linq 是否会这样做。我刚刚做了一个快速测试,在其中读取了值,进行了替换并输出了新值,效果很好。也许你应该尝试在两端调试,看看字符串的实际值是什么。
    【解决方案2】:

    将 htmlEncode 设置为 false

    【讨论】:

    • 我尝试查看所有涉及的控件,但在任何地方都没有看到 htmlEncode 属性
    【解决方案3】:

    如果您要从数据库中取出包含换行符的数据,那么只需将它们留在那里,textArea 应该可以正常工作......您不需要用“
    ”替换。 ..如果您将文本作为 HTML 放入页面中,您只需要这样做...但是您正在尝试填充输入控件,所以除非您正在做其他不清楚的事情,否则您不需要'不需要做替换

    【讨论】:

    • 嘿,如果我不清楚,对不起......我正在其他地方输出这些数据。当我把它放回textarea时它工作正常。在那里,它有换行符。当我在其他地方输出到 HTML 时(不在 textarea 中),那是我用
      替换但它没有找到 vbCrLf
    【解决方案4】:

    使用 textarea 控件,长文本看起来像是有换行符,但有时它们没有换行符。如果文本达到文本区域的长度,则在第二行继续,但不包含换行符。如果用户按下回车键,则会在您的内容中添加一个新的换行符。

    我认为你错过了这一点。

    希望对你有帮助。

    【讨论】:

    • 不,我完全理解这一点......这与我的问题相反。我想获得用户输入的换行符。例如,当用户键入第 1 行(点击返回)第 2 行...我想在将其输出到页面时用 HTML 换行符 (
      ) 替换这些换行符。我知道文本会自动换行,这不是问题。
    • 就像我说的那样,它在进入 DetailsView 之前就可以正常工作,但由于某种原因,详细信息视图似乎正在改变 vbCrLf 字符(我用
      替换了它正是我想要的)与其他一些换行符,它不是 vbCrLf,因此在输出到页面时不会被替换为
    【解决方案5】:

    我总是用
    替换 VB.NET 中的字符代码——chr(10) 来显示我的换行符。试试看?

    【讨论】:

    • 你好,如何替换字符代码?我试过 Replace(stringField, char(10), "
      ") 但它说 char 是一种类型,不能用作表达式。
    • zakster82 说 chr(10) 而不是 char(10)。我个人使用 C#,所以我对此不确定,但我相信 chr 是一个旧的 vb 函数,用于将整数转换为 ascii 字符。我不确定它是否存在于 VB.NET 中。由于我也不确定您使用的是 VB.NET 还是 C#,所以我建议使用 System.Convert.ToChar(10) 之类的东西,我认为它们都可以使用。
    猜你喜欢
    • 2023-03-14
    • 2012-09-02
    • 2022-01-25
    • 1970-01-01
    • 2011-06-06
    • 2010-09-22
    相关资源
    最近更新 更多