是否有任何方法可以使用特定的用户控件,具体取决于网站使用的主题?
方案: 我在我的asp.net项目中使用主题。我将拥有相同的代码库和不同的外观和感觉,因此使用主题&皮肤。 现在的问题是,如果我想要不同的标题和&页脚(用户控件)取决于网站的类型,我们如何在主题的帮助下做。
答案 0 :(得分:0)
是的,可以使用主题修改控件层次结构。
这可以通过 ITemplate 可主题属性实现。
例如,如果您的自定义控件只有一个可主题的内容属性,那么您可以说:
<custom:MyThemeableControl runat="server">
<Contents>
... any valid *.skin markup here
</Contents>
</custom:MyThemeableControl>
现在您可以将内容中的控件替换为不同的主题,如下所示 - 对于 ThemeA ,您将拥有以下皮肤:
<custom:MyThemeableControl runat="server">
<Contents>
<asp:Button runnat="server" />
</Contents>
</custom:MyThemeableControl>
对于 ThemeB ,您将拥有以下皮肤:
<custom:MyThemeableControl runat="server">
<Contents>
<asp:TextBox runnat="server" />
</Contents>
</custom:MyThemeableControl>
然后此页面会在 ThemeA 下呈现按钮,在 ThemeB 下呈现 TextBox :
<@Page Theme="ThemeA">
<custom:MyThemeableControl runat="server" />
<@Page Theme="ThemeB">
<custom:MyThemeableControl runat="server" />