使用<pre>标记时,文本超出父<asp:label>边框

Mad*_* D. 2 html css asp.net

我有一个奇怪的问题,

我有一个datarepeater从数据库中读取一些用户条目,然后在<asp:label>...中显示它们

我的第一个问题是,当阅读文本时,所有内容都\n被删除了..

所以我用一个<pre>标签来解决这个问题..然而......出现了一个新问题..现在文本实际上超出了标签的边界..

<td width="630px" >
 <pre>
   <asp:Label ID="lblComments"  runat="Server" 
       width="630px" Text='<%#DataBinder.Eval(Container.DataItem, "Comments") %>'
       Style="font-size: larger">
   </asp:Label>
  </pre>
</td>
Run Code Online (Sandbox Code Playgroud)

Zha*_*uid 6

是的,pre只会输出文本,几乎不考虑页面的布局.

您应该格式化数据库中的文本以将\n转换为<br/>s.

你应该能够逃脱:

<%# DataBinder.Eval(Container.DataItem, "Comments")
                   .ToString().Replace("\n", "<br />") %>
Run Code Online (Sandbox Code Playgroud)

  • 这将是我的建议,但只是要注意它不是完全证明 - 如果数据来自用户输入,它可能是\ r \n或\ r \n,不确定Environment.NewLine在这种情况下会有所帮助(除非你规范化所有用户输入的新行) (2认同)