【问题标题】:ASP Label in repeater displays html tags中继器中的 ASP 标签显示 html 标签
【发布时间】:2015-08-24 14:09:44
【问题描述】:

我想在数据列表中显示一些信息。 我无法控制仅 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 标记

【问题讨论】:

标签: c# html asp.net newline


【解决方案1】:

基本上是重复的

Render a string in HTML and preserve spaces and newlines

将文本括在span 中并设置空格处理。 喜欢:

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

编辑

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

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

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

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

【讨论】:

  • 这不起作用,因为数据列表中的工具提示文本不包含换行符
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 2021-11-16
  • 2015-03-03
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
相关资源
最近更新 更多