Временное решение не для темы (в частности, asp: Button OnClientClick) - PullRequest
0 голосов
/ 12 марта 2010

Переоборудование тем ASP.NET WebForms в старое приложение. Мне нужно добавить тег <input>, чтобы событие щелчка JavaScript отличалось для каждой темы. Я заменил тег тегом asp:Button только для того, чтобы выяснить, что свойство OnClientClick не подлежит редактированию.

Может кто-нибудь предложить обходной путь для этого?

1 Ответ

1 голос
/ 13 марта 2010

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>
...