- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
")未按预期工作-6ren"> ")未按预期工作-我不确定为什么以下代码没有按预期工作: litMessage.Text = messageBody.Replace(Environment.NewLine, "") 其中 litMessage 是文字-6ren">
我不确定为什么以下代码没有按预期工作:
litMessage.Text = messageBody.Replace(Environment.NewLine, "<br/>")
其中 litMessage
是文字控件的名称,messageBody
是字符串变量的名称。
我的目的是将字符串输出到网页上,并用br标签替换换行符,以便它可以正确显示在页面上。但是,没有任何东西被替换。查看页面源代码时,字符串中似乎仍然存在换行符。同样,通过MsgBox 显示字符串时,也能正常显示。我还尝试用 pre
标记包装输出,它也正确显示换行符。
该字符串最初由用户通过使用 asp:Textbox 输入并保存到 MSSQL 数据库中。它使用 asp:Literal 控件检索并显示在另一个网页上。字符串在提交之前唯一发生的事情是它被修剪(即 textbox.Text.Trim())
。
也许有什么我没有考虑到的?
编辑 #1: 由于时间限制,我决定用 pre
标签将文本包裹起来。这是一个可以接受的解决方法,因为它保留了换行符。不幸的是,它并没有解释为什么代码首先不起作用。与此同时,在找到合适的答案之前,我会先不回答这个问题。
编辑 #2: 在下面找到并回答了解决方案。已将 UpdatePanel 标记添加到问题中以供将来引用。
最佳答案
在重新审视这个问题后,我发现是更新面板导致了这个问题。
在进行更多测试后,我使用以下代码查看了字符串中包含的内容:
MsgBox(textbox.Text.Contains(vbCr))
MsgBox(textbox.Text.Contains(vbCrLf))
MsgBox(textbox.Text.Contains(vbNewLine))
MsgBox(textbox.Text.Contains(Environment.Newline))
所有四个语句都返回 false。这在发送到数据库之前的字符串以及从数据库检索的字符串上进行了测试。
从我的角度来看,标记中必须有一些东西可以删除换行符。起初,我认为 Literal、Textbox 和 Label 控件在后面的代码中检索时对换行符做了一些有趣的事情。事实并非如此(如果 Microsoft 让这种情况发生,那就太奇怪了)。
进一步梳理代码,我发现所有这些控件都在一个 UpdatePanel 中。想起我以前对 UpdatePanels 的负面体验,我认为这可能就是罪魁祸首。我删除了它,你瞧,代码中的换行符并没有消失。我刚刚发布的代码全部返回 true。
两个页面都有用于提交文本和在 UpdatePanel 中显示文本的控件。我发现从页面检索文本时换行符消失了。在页面上显示文本时,UpdatePanel 不会以任何方式更改字符串。以下代码最终运行良好:
litMessage.Text = messageBody.Replace(Environment.NewLine, "<br/>")
尽管我仍然不确定为什么在使用 pre
标记甚至使用 javascript 警告框显示检索到的值时仍能正确显示换行符。
关于asp.net - 在网页上显示文本时,替换(Environment.NewLine, "<br/>")未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8262489/
我们的 CMS 将换行符输出为 (愚蠢,我知道,但在语法上是正确的(?)) 这转换为 在 chrome 和 IE10 中到 在火狐中。 所有浏览器都将其显示为两个换行符。 为什么不是翻译成或者只是
我正在尝试将一堆 HTML 文档转换为 XML 合规性(通过 java 方法),并且有很多 (1) 未封闭或 (2) 包含属性的标签。由于某种原因,我使用的正则表达式无法处理包含属性的标签。这是代码
如何转换字符串 "" to "" using java's String.replaceAll(String, String) method? 我都试过了: str.replaceAll("+
这个问题的答案是 community effort 。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。 我试过检查 other answers ,但我仍然感到困惑——尤其是在看到 W3scho
问题是我无法通过生产者脚本将消息发送到集群内的任何代理。 该设置是一个单一的 Zookeeper 服务器,使用默认设置在 IP (192.168.10.2:2181) 上运行。 此外,还有 3 个代理
我正在尝试使用 python 和 Beautiful Soup 4 用新行替换某些 html 中的每个中断标记。 该文档有 , 和标签,但由于 Beautiful Soup 处理标签的方式,每当它找到
我正在使用带有模板工具包的 perl 生成网页,我在 HTML 文件上更改了一些 JS 代码,编辑后有 显示在 UI 上,我不知道如何,奇怪的是没有 源码中,只有在Inspect element On
这是 HTML 页面的完整源代码: one two three four 谁能解释一下为什么我在IE8或chrome浏览页面时,“三”和“四”之间多了一个空行? 我认为标准应该让所有
我正在使用 并且它按预期在 chrome 和 IE 中正常工作,但在 firefox 中结果很奇怪。当我在 firefox 中看到代码时,它替换了 与 . 我还在某处读到替代语法 XML 允许在许
我有将 BBCode 替换为 html 的代码,当我想替换标签时出现问题 或 [br /]在 [pre=html] code [/pre] 内. Regex exp; string str; str
这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the h
我正在使用这个(jQuery)来替换所有 与清除验证错误: $("").replaceAll(""); 但它不会减少任何验证错误。验证器是否检查原始来源? 最佳答案 JQuery 仅在文档呈现后才
我想获取 break html 中的文本,但这不是用段落换行,只是break内的文本。 Division 是我唯一的标识符,它是“Msg”。我怎样才能获得每个元素之一? H
Hood switch - (automatic transmission only).<br><br>Hood Switch (2013 CX-5 - not requir
我想选择 br 后面没有跟另一个 br 的元素。 例如。 sometextadsf 我想选择这两个元素。 sometextadsf 我只想选择 2 个 br 元素,而不是 4 个。 我看过这个问题,但
这个问题在这里已经有了答案: HTML 5: Is it , , or ? (18 个答案) 关闭 9 年前。 当我开始从 w3schools 学习 HTML 时,他们正在使用这个 .当我开始学习
我是 nagios 新手,我已经在我的 Linux 机器上安装了 nagios 3。 我想安装 nagios check_procs 插件。有人可以建议我吗。谢谢 最佳答案 您可以从依赖于您使用的 L
我有一个段落有一些单一的 和双 . 我想添加所有单个 , 但不是双 . 这怎么可能? 如果我用 p br {display:none} 它隐藏了所有的 br 标签。但是,当我有两个 br 时,我希
之间的主要区别是什么?和 在 html 标记中?有人可以解释两者的主要区别,因为这让我感到困惑。预先感谢您的所有评论。 :) 最佳答案 在实践中,不存在。就或 . 但是,区别在于位置,并且对所有
我如何使用JavaScript来检测 成为一个 ? 我试过: jQuery('body').html().replace(/(\\r\n){3, }/g,"\n"); 但这对我不起作用。 最佳
我是一名优秀的程序员,十分优秀!