将 GridView 标题文本设置为按指示换行
Posted
技术标签:
【中文标题】将 GridView 标题文本设置为按指示换行【英文标题】:Setting GridView header text to wrap as directed 【发布时间】:2010-09-25 23:58:33 【问题描述】:我有一个 GridView,其中包含以下列:
| A | B C | D E / F |
我希望这些以特定方式包装 - 也就是说,我不想让浏览器根据列宽来决定是否包装。所以在上面的例子中,我可能想要以下内容:
| A | B | D |
| | C | E / F |
我尝试过使用\n
和<br/>
,但是这两个都不起作用。
有什么想法吗?
【问题讨论】:
【参考方案1】:您可以在没有模板的情况下做到这一点。只需在带有 <br />
标签的标题上设置 htmlEncode="False"。
例子:
<asp:GridView ID="GridView1" runat="server" DataSourceID="Data">
<Columns>
<asp:BoundField HeaderText="First Line<br />Second Line" DataField="ContactID"
HtmlEncode="False" />
<asp:BoundField HeaderText="Second" DataField="FirstName" />
<asp:BoundField HeaderText="Third<br />Extra" DataField="Title" />
</Columns>
</asp:GridView>
渲染:
第一行 |第二 |第三额外 | 二线 | | | --------------------------------------------- 1 |古斯塔沃 |先生| --------------------------------------------- 2 |凯瑟琳 |女士 | ---------------------------------------------注意:如果您使用设计器而不是直接编辑 aspx,当您单击确定时,它会将您的“&lt;
”更改为“&lt;
”。
【讨论】:
不幸的是,看起来 HtmlEncode 设置会影响 HeaderText 和列数据 - 这似乎不安全。似乎没有办法只为 HeaderText 关闭它 是的,这有点令人失望。除非您以其他方式清理数据,否则该列容易受到 XSS 的攻击。 【参考方案2】:如果您使用模板字段,您可以在标题模板中对标题内容进行细粒度控制:
<asp:templatefield>
<headertemplate>
D<br />
E / F
</headertemplate>
<itemtemplate>
<%#Eval("MyField")%>
</itemtemplate>
</asp:templatefield>
【讨论】:
以上是关于将 GridView 标题文本设置为按指示换行的主要内容,如果未能解决你的问题,请参考以下文章