我正在创建一个基于asp:Label控件的自定义复合控件。我希望能够将标签的默认属性设置为可换肤,以及我添加到控件中的其他属性。
但是当我在主题目录中的Default.skin文件中添加外观定义,并将控件添加到指定了SkinId的页面时,我无法弄清楚如何使用Skinned属性来呈现控件。 / p>
补充要点:
来自皮肤文件:
<ctrl:ExtendedLabel SkinId="test" runat="server"
Expandable="true" Lookup="true" Required="true"
RequiredCssClass="required" Text="Hello" />
来自aspx页面:
<ctrl:ExtendedLabel SkinID="test" runat="server"/>
来自web.config:
<pages>
<controls>
<add tagPrefix="ctrl" namespace="MyCompany.WebControls"
assembly="MyCompany.Web" />
</controls>
</pages>
我在控件中添加了一个test属性,将其标记为[Themeable(false)],以便测试在skin文件中设置该属性时是否会出现运行时错误。没错。
请注意,pages标签没有styleSheetTheme属性。但是,我有一个覆盖StyleSheetTheme属性的Base页面类,它似乎适用于其他所有内容。
如果我将styleSheetTheme属性添加到web.config中的pages标签,那么外观就会起作用,包括如果我尝试设置非Themeable属性时会收到错误。
有什么区别?如何使用Base页面类属性代码?
答案 0 :(得分:2)
尝试这个时你会得到什么?我刚刚创建了一个简单的测试项目,并且能够在Web自定义控件上设置自定义属性。我的步骤是:
加载页面并查看“测试文本”文本,该文本仅出现在皮肤文件中。
希望我上面的一个步骤将是您忘记的内容,但如果没有,请更新您的问题,详细说明您正在尝试的内容以及您所看到的内容。