0

有没有办法根据站点使用的主题来使用特定的用户控件?

场景:我在我的 asp.net 项目中使用主题。我将拥有相同的代码库和不同的外观和感觉,因此使用主题和皮肤。现在的问题是,如果我想根据站点的类型使用不同的页眉和页脚(它们是用户控件),我们如何在主题的帮助下做到这一点。

4

1 回答 1

0

是的,可以使用主题修改控件层次结构。

这可以通过Themeable 的ITemplate属性实现

例如,如果您有一个自定义控件,该控件仅具有可主题化的Contents属性,您可以说:

<custom:MyThemeableControl runat="server">
    <Contents>
    ... any valid *.skin markup here
    </Contents>
</custom:MyThemeableControl>

现在您可以将 Contents 中的控件换成不同的主题,如下所示 - 对于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下呈现一个Button ,在ThemeB下呈现一个TextBox

<@Page Theme="ThemeA">
<custom:MyThemeableControl runat="server" />

<@Page Theme="ThemeB">
<custom:MyThemeableControl runat="server" />
于 2010-01-08T14:55:38.447 回答