Gok*_*oku 5 html asp.net frontend gridview web
我需要在asp GridView中的asp BoundField的内容中显示换行符。我最初有\ r \ n,但是页面完全忽略了此换行符。我做的第二件事是在字符串中替换换行符,但是无论我在字符串中的何处,页面仅显示文字文本“”。我尝试过的最后一件事在技术上是行得通的,并且通过将字段的字符串放入HTML编码并将元素设置为“ false”,从而实现了这一目标。该解决方案的问题在于,我听说这会引起安全问题。如何在这些字段中使用换行符而不将HTML编码设置为false。
默认情况下,HTML将换行符,制表符和空格视为普通的空格,并将多个空格字符折叠到一个空格中以进行渲染。因此,在HTML中包含换行符通常不会影响在浏览器中呈现文本的方式。有关此主题的更多信息和背景,请参考上一个问题,该问题具有非常有益的评论。
但是,如果希望文本中的换行符在浏览器中显示为换行符,则可以在纯CSS中实现此功能,而无需关闭HTML编码或引入任何安全性问题。在白色空间CSS属性为标准,已通过了很久所有主流浏览器的支持,使您可以指示浏览器渲染换行符原样。
GridView可以通过使用<ItemStyle>标记将ASP.Net生成的HTML更改为包括CSS样式,如下所示:
<style>
.preformatted
{
white-space: pre-line;
}
</style>
<asp:GridView runat="server" ...>
<Columns>
<asp:BoundField ...>
<ItemStyle CssClass="preformatted"/>
</asp:BoundField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
white-space: pre-line;您也可以尝试使用white-space: pre;,而不是使用,但是这剥夺了浏览器使文本流动以适合可用空间的能力,因此,如果文本没有足够的换行符,则可能导致网格列变得太宽。
| 归档时间: |
|
| 查看次数: |
1560 次 |
| 最近记录: |