我想使用ASP.NET主题的皮肤或其他功能(或任何其他自动方式)将默认的基于列的样式应用于我的GridView
控件。
目前我的GridView外观如下所示:
<asp:GridView runat="server" GridLines="None">
<HeaderStyle CssClass="GridViewRowHeader" />
<FooterStyle CssClass="GridViewRowHeader" />
<RowStyle CssClass="GridViewRowA" />
<AlternatingRowStyle CssClass="GridViewRowB" />
</asp:GridView>
典型的GridView列定义如下所示:
<Columns>
<asp:BoundField DataField="ExitTimestamp" HeaderText="Exit" SortExpression="ExitTimestamp">
<ItemStyle CssClass="GridViewCell" />
<HeaderStyle CssClass="GridViewHeader" />
</asp:BoundField>
<asp:TemplateField HeaderText="Visitor Name/Agency">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("VisitorName") %>'></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text='<%# Bind("VisitorAgency") %>'></asp:Label>
</ItemTemplate>
<ItemStyle CssClass="GridViewCell" />
<HeaderStyle CssClass="GridViewHeader" />
</asp:TemplateField>
</Columns>
我想要解决的问题是必须将<ItemStyle>
和<HeaderStyle>
元素添加到GridView
控件中的每个列定义中。我在皮肤文件中尝试了各种方法,包括在其中添加<Columns>
容器和<ItemStyle>
元素,但似乎没有任何效果。有没有办法做到这一点?
答案 0 :(得分:2)
对于后人,这是我最终使用CSS专门解决问题的方法。
我在我的皮肤文件中为GridView
分配了一个CSS类,如下所示:
<asp:GridView runat="server" CssClass="GridView">
该样式选择td
中的th
(item)和GridView
(标题)单元格,并且与使用ItemStyle
直接应用普通CSS类一样有效列定义中的HeaderStyle
:
table.GridView tr td, table.GridView tr th
{
/* style attributes here */
}
答案 1 :(得分:1)
这里的建议可能适合你http://forums.asp.net/t/1063057.aspx简而言之,并在你的gridview中添加一个CssClass,然后使用普通的旧CSS样式表来定位和装饰控件。