我有一个SQL数据库,其中有一个带换行符的文本。但在复读器中,文本没有中断。有没有一个解决方案,让中继器休息?
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td></td>
<td colspan="2" style="text-align:center"><%# Eval ("Titel") %></td>
</tr>
<tr>
<td><asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Bild") %>' /></td>
<td><%# Eval ("Inhalt") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
最有可能的问题是,换行符存储为操作系统环境(如environment.NewLine)中使用的换行符。这些换行符在HTML中不会这样显示。
您需要将它们替换为中继器代码中的HTML换行符<br />
:
<td><%# ((string)Eval ("Inhalt")).Replace(Environment.NewLine, "<br />") %></td>
当然,如果您使用视图模型在代码背后准备数据,这看起来会更好,但遗憾的是,它确实有效。