【问题标题】:How do I break the a BoundField's HeaderText如何打破 BoundField 的 HeaderText
【发布时间】:2010-09-23 12:47:05
【问题描述】:

在表格的 td 中的 HTML 中,您可以通过在单词之间使用 <BR> 来中断文本。这也适用于 TemplateItem 的 HeaderText,但不适用于 BoundField 的 HeaderText。如何分解 BoundField 的 Header 文本。

【问题讨论】:

标签: c# gridview boundfield headertext


【解决方案1】:

BoundField内设置HtmlEncode = false

 <asp:BoundField DataField="SomeDataField" 
        HeaderText="SomeHeader<br />(OtherData)" 
        HtmlEncode="false" />

BoundField.HtmlEncode 默认为真,这意味着如果在文本中添加 HTML,它将被编码。
如果 HtmlEncode 设置为 false,则文本不会被编码,并且 br 将按预期工作。不幸的是,不能只为标题文本指定这个,它也会影响单元格的内容。

【讨论】:

  • +1:我错过了这个小属性,正在寻找严重的黑客攻击。谢谢:)
  • 这当然会弄乱实际的字段文本显示(如果它有看起来像 HTML 的东西,包括 &amp;),所以要小心。尤其是当网格显示用户提供的数据时,因为您正在为注入攻击敞开大门。
  • HtmlEncode="false" 由于潜在的 XSS 攻击,不推荐使用 docs.microsoft.com/en-us/dotnet/api/…
【解决方案2】:

对于那些试图在不禁用 HtmlEncode 的情况下执行此操作的人来说,这非常简单,虽然看起来有点傻。只需使用真正的换行符。就这样……

<asp:BoundField DataField="ProposedExtractionStartDate" HeaderText="Proposed
                        Extraction Start Date" SortExpression="ProposedExtractionStartDate"  DataFormatString="{0:MM/dd/yyyy}" />

当 HTML 呈现时,这实际上会显示为多行。

如果有一个字符组合可以表示这一点,我很想知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2011-12-05
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多