gpt4 book ai didi

html - 如何在不关闭 HTML 编码的情况下在 asp GridView BoundField 中正确显示换行符

转载 作者:行者123 更新时间:2023-12-04 13:41:08 34 4
gpt4 key购买 nike

我需要在 asp GridView 中的 asp BoundField 的内容中显示换行符。我最初有\r\n,但页面完全忽略了这个换行符。我做的第二件事是用字符串中的换行符替换我的换行符,但页面只显示文字“”,只要我在字符串中有这个。我在技术上尝试的最后一件事是成功的,我通过在字段中放入我的字符串,并将元素的 HTML 编码设置为“false”来实现这一点。我对这个解决方案的问题是,我听说这会导致安全问题。如何在不将 HTML 编码设置为 false 的情况下在这些字段中设置换行符。

最佳答案

默认情况下,HTML 将换行符、制表符和空格视为常见的空格,并将多个空格字符折叠为单个空格以进行渲染。因此,在 HTML 中包含换行符通常不会影响文本在浏览器中的呈现方式。有关此主题的更多信息和背景,请参阅之前的 question ,其中有一些非常有用的评论。

但是,如果您希望文本中的换行符在浏览器中呈现为换行符,您可以在纯 CSS 中实现这一点,而无需关闭 HTML 编码或引入任何安全问题。 white-space CSS property是标准的并且长期以来一直被所有主要浏览器支持,并且使您能够指示浏览器按原样呈现换行符。

更改 ASP.Net 生成的 HTML GridView可以通过使用 <ItemStyle> 来包含 CSS 样式。标记如下所示:

<style>
.preformatted
{
white-space: pre-line;
}
</style>

<asp:GridView runat="server" ...>
<Columns>
<asp:BoundField ...>
<ItemStyle CssClass="preformatted"/>
</asp:BoundField>
</Columns>
</asp:GridView>

而不是使用 white-space: pre-line;你也可以试试 white-space: pre; ,但这会削弱浏览器使文本流动以适应可用空间的能力,因此如果您的文本不包含足够的换行符,可能会导致您的网格列变得太宽。

关于html - 如何在不关闭 HTML 编码的情况下在 asp GridView BoundField 中正确显示换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44467086/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com