在复合控件中应用主题

时间:2013-05-27 11:22:18

标签: c# asp.net servercontrols composite-controls

我有一个复合控件,可以创建数据网格和其他组件。该控件的Themeable属性设置为true:

[ToolboxData("<{0}:MyCompositeControl runat=server />")]
[Themeable(true)]
public class MyCompositeControl : CompositeControl {

在我的主题的.skin文件中,应用于页面,我有一些GridView控件的设置,比如

<asp:GridView runat="server" GridLines="None" CssClass="datacontrol">
  <AlternatingRowStyle BackColor="#E0F0FF" ForeColor="#333333" />
</asp:GridView>

皮肤设置应用于页面中的其他网格视图,但不应用于我的复合控件创建的网格视图。

如何将主题应用于复合控件创建的控件?

1 个答案:

答案 0 :(得分:0)

解决方案只是为OnLoad方法中的子控件显式调用ApplyStyleSheetSkin

protected override void OnLoad(EventArgs e) {
    EnsureChildControls();
    TheGridView.ApplyStyleSheetSkin(Page);
}