将ASP.NET WebForms主题改造为旧应用程序我需要对<input>
标记进行主题化,以使每个主题的JavaScript单击事件都不同。我用asp:Button
替换了标记,但只是为了表明OnClientClick
属性不是主题。
有人可以为此建议解决方法吗?
答案 0 :(得分:1)
<强> ThemeableButton 强>
您必须创建一个派生自Button
的简单类。然后覆盖OnClientClick
属性并添加Themeable
属性,如下所示。
[ToolboxData("<{0}:Button runat=\"server\" />")]
public class ThemeableButton : Button
{
[Themeable(true)]
public override string OnClientClick
{
get { return base.OnClientClick; }
set { base.OnClientClick = value; }
}
}
<强>的Web.Config 强>
现在,你必须用新的按钮替换旧按钮。更改pages
部分,如下所示。
<pages>
<tagMapping>
<add tagType="System.Web.UI.WebControls.Button, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mappedTagType="[Namespace].ThemeableButton, [AssemblyName]" />
</tagMapping>
</pages>