ASP.NET 2.0:皮肤文件仅在放置在根主题文件夹时才起作用?

时间:2008-09-15 22:06:22

标签: asp.net themes

我发现皮肤文件只有放在App_Themes文件夹的根主题文件夹中才有效。

例如,如果App_Themes文件夹中有2个主题,则无法将另一个子文件夹添加到主题文件夹中,并在该子文件夹中放置单独的外观文件。

这不是一个限制,但它可以让您更灵活地进一步自定义应用程序。

任何人都可以解释为什么会出现这种情况,就像在2.0中一样吗?

3 个答案:

答案 0 :(得分:1)

你的皮肤文件是否应该有扩展名.skin?我总是称它们为theme.skin,并给它们与文件夹相同的名称。例如,在主题col2中,文件夹是

App_Themes文件\ COL2 并包含css和col2.skin

Microsoft是您最好的参考:

答案 1 :(得分:1)

ASP.Net中的主题不提供从“子主题”中选择的能力。

但是,您可以在皮肤文件中设置SkinID。例如,在.skin中:

<asp:DataList runat="server" SkinID="DataListColor" Width="100%">
  <ItemStyle BackColor="Blue" ForeColor="Red" />
</asp:DataList>

<asp:DataList runat="server" SkinID="DataListSmall" Width="50%">
</asp:DataList>

然后,当您想要调用其中一个时,只需为数据列表指定所需的SkinID。

答案 2 :(得分:0)

更改此行为的唯一方法是通过 VirtualPathProvider - 有以下几点: http://www.neovolve.com/page/ASPNet-Virtual-Theme-Provider-10.aspx