【问题标题】:<br/> not being displayed on text string replacement and then put into placeholder<br/> 文本字符串替换时不显示,然后放入占位符
【发布时间】:2011-11-16 11:41:59
【问题描述】:

当我从 SQL 读取数据时,它有 \r\n 作为回车符,所以我使用 .Replace 将 \r\n 转换为 &lt;br/&gt;,但在显示时 &lt;br/&gt; 是忽略。如果我用&lt;p&gt;&lt;/p&gt; 替换\r\n 就可以了,但这不是我需要的。

&lt;br/&gt; 被忽略,我需要它们生成换行符。

任何关于它为什么这样做或如何实现我想要做的事情的见解都会很棒!

编辑:我已经解决了下面代码中的错字-但这根本不是我的问题-。我已经询问了 BR 和他们的展示情况。

HTML

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

代码隐藏

string strTempDetail = myReader["Detail"].ToString();
string strMoreTempDetail = strTempDetail.Replace("\r\n", "<br/>");
LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail.ToString());
PlaceHolder1.Controls.Add(UserControlSpecialOffers);

谢谢!

【问题讨论】:

  • 所以你的问题与SQL或string.Replace无关。严格来说,换行符不会在您期望的时候出现在您的输出中,对吧?
  • 与您的问题无关,但您为什么要在字符串上调用ToString()
  • @Dave - 我喜欢为所有事情都这样做,这样我就不会感到困惑。

标签: c# string placeholder


【解决方案1】:

您的代码中有错字。您正在将原始字符串分配给您的控件,而不是包含替换的字符串。

改变

LiteralControl UserControlSpecialOffers = new LiteralControl(strTempDetail.ToString());

LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail );

【讨论】:

  • 错字已更新。由于我的问题与错字完全无关,请再次阅读我的问题。
【解决方案2】:

你在这一行有错误的字符串

LiteralControl UserControlSpecialOffers = new LiteralControl(strTempDetail.ToString()); 

应该是

LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail); 

【讨论】:

  • 为什么要在字符串上使用 .ToString()?
  • @Babak 只是修复了明显的错误。最后不需要 .ToString() 但这不是它不起作用的原因。
【解决方案3】:

因为您将 strTempDetail 添加到您的文字控件,而不是 strMoreTempDetail,这是您执行替换的字符串。

【讨论】:

    【解决方案4】:

    您是否通过任何更改从 SQL Server 读取您的字符串?如果从 SQL 服务器 ntext 列读取的字符串包含 '\n' 而不是 '\r\n' 的问题(即使保存了 '\r\n')。

    尝试string strMoreTempDetail = strTempDetail.Replace("\n", "&lt;br/&gt;") 是否提供更好的结果。

    或者为了保存,将两者都替换:string strMoreTempDetail = strTempDetail.Replace("\r\n", "&lt;br/&gt;").Replace("\n", "&lt;br/&gt;")

    【讨论】:

    • 这两个我都试过了。由于某种原因,占位符的输出不会向浏览器输出换行符。但是,我将显示一个

      !这是非常令人沮丧的......

    • ..是的,这是 SQL 的输出,它位于 nvarchar 字段中。
    • 或者使用strTempDetail.Replace(System.Environment.NewLine, "
      ")
    【解决方案5】:

    其他人修改了css文件并把BR display:none;在 CSS 中。所有的地方!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2017-03-20
      • 2021-09-26
      • 2020-10-27
      • 1970-01-01
      • 2012-05-11
      • 2020-06-09
      相关资源
      最近更新 更多