One feature the Table server control lacks is being able to set style properties for Header rows and normal Rows from within the <asp:Table /> server tag. (e.g. <asp:Table id="tbl" HeaderStyle-BackColor="#FF0000" runat="Server" />)
So instead, I tried this inside my .skin file:
<asp:Table CellPadding="3" CellSpacing="-1" Runat="Server">
<asp:TableHeaderRow BackColor="#606060" ForeColor="#FFFFFF" Runat="server" />
</asp:Table>
When I set the page's THEME to my new Theme, any asp:Table would basically render exactly how it appears above. It thought I was defining a template (so all that would render was a <table> tag with a <tr> inside).
So then I tried setting it to a StyleSheetTheme. Neither the Table nor it's TableHeaderRow's would get any styling. I removed the <asp:TableHeaderRow> from the .skin file and it worked fine.
The only other option is to have to separte things in the .skin file:
<asp:Table CellPadding="3" Runat="Server" />
<asp:TableHeaderRow BackColor="#606060" Runat="Server" />
But what happens if you want different SkinID's for Table's? Does SkinID cascade down through it's children, or would I have to explicitly set a SkinID for the Table and TableHeaderRows?
Thanks.