ASP 转发器中的标签显示 html 个标签

ASP Label in repeater displays html tags

我想在数据列表中显示一些信息。 我无法控制仅 aspx 文件背后的代码。使用以下代码。但是,如果 ToolTipText 是多行,它将在页面上显示为单行。有没有办法让它显示为多行?

<asp:DataList id="ThumbnailListViewData" runat="server" EnableViewState="false" RepeatLayout="Flow" RepeatDirection="Horizontal">
  <ItemTemplate>
        //othervalues
        <%# DataBinder.Eval(Container.DataItem, "ToolTipText") %>
    <asp:DropDownList runat=server ID="QtyDropDown" Visible=false onkeydown="if (event.keyCode == 13){return false;}" />
  </ItemTemplate>
</asp:DataList>

datalist中的数据从我们系统后端的一个字段中获取ToolTipText。不保存换行符。我尝试添加
但这显示为 html 标签

基本上是

的重复

Render a string in HTML and preserve spaces and newlines

将文字围起来span,设置白色space处理。 喜欢:

<span style="white-space: pre-wrap;">
  <%# DataBinder.Eval(Container.DataItem, "ToolTipText") %>
</span>

编辑

如果文本中没有换行符,您只需要将文本换行到指定宽度,则必须指定块元素的宽度 - 如:

<div style="width:40px">
  <%# DataBinder.Eval(Container.DataItem, "ToolTipText") %>
</div>

如果您的文本可以包含一些没有 space 的长词,例如 UnBelievableLongWordForNoObviousReason 等,您可能需要设置换行策略 - 例如:

<div style="width:40px;word-wrap: break-word">
    UnBelievableLongWordForNoObviousReason
</div>