2013-03-13 85 views
3

我在创建基于ASP.NET的ImageButton控件的新控件时遇到了一些问题。一切都按预期工作,除了正在控制的OnInit覆盖中的点击处理程序。基本上,单击自定义图像按钮只刷新页面,不会触及处理程序。自定义图像按钮控件点击处理程序没有触发

现在,我知道这是愚蠢的,我已经做了或只是没有理解,但我不能为我的生活弄清楚这一点。我在控件的事件处理问题上找到的所有文章,问题和论坛帖子都是针对子控件的,而不是那些从现有控件类型继承而来的,并具有自己的预定义处理程序。

下面的代码是我写的东西:

public class WebPaymentButton : ImageButton 
{ 
    public string DisabledImageUrl { get; set; } 

    public string TermsAcceptClass { get; set; } 

    protected override void OnPreRender(EventArgs e) 
    { 
     Page.ClientScript.RegisterClientScriptResource(typeof (WebPaymentButton), "PaymentModule.Scripts.WebPaymentButtonScript.js"); 
    } 

    protected override void OnInit(EventArgs e) 
    { 
     CssClass = "WebPaymentButton"; 

     if (!string.IsNullOrWhiteSpace(TermsAcceptClass)) 
     { 
      Attributes["data-TermsClass"] = TermsAcceptClass; 
     } 

     if (!string.IsNullOrWhiteSpace(DisabledImageUrl)) 
     { 
      Attributes["data-DisabledImageUrl"] = ResolveUrl(DisabledImageUrl); 
     } 


     Click += WebPaymentButton_Click; 

     base.OnInit(e); 
    } 


    private void WebPaymentButton_Click(object sender, ImageClickEventArgs e) 
    { 
     HttpContext.Current.Response.Redirect("http://dummy_payment_page_in_place_of_code", true); 
    } 
} 

我试图钩住处理了在onload,也将其切换到运行base.OnInit /调用的OnLoad之后。没有解决处理器问题。任何人都可以将我指向正确的方向吗?

万一有帮助,这里是页面上的按钮标记:

<pm:WebPaymentButton runat="server" ImageUrl="~/pay-now.png" DisabledImageUrl="~/not-pay-now.png" TermsAcceptClass="TermsCheckbox" ID="MainPayButton" /> 
+0

,你改变'私人无效WebPaymentButton_Click'为'保护无效WebPaymentButton_Click'会发生什么? – MikeSmithDev 2013-03-13 14:36:39

+0

@MikeSmithDev尝试此建议不会改变任何内容。在这两种情况下都没有错误或警告。 – djstamp 2013-03-14 10:18:27

回答

0

你试过重写OnClick事件处理程序,而不是挂接到一个新的事件处理程序?

OnInit取出Click += WebPaymentButton_Click行,并删除WebPaymentButton_Click功能,然后将下面的代码添加到您的类,而不是:

protected override void OnClick(ImageClickEventArgs e) 
{ 
    base.OnClick(e); 
    HttpContext.Current.Response.Redirect("http://dummy_payment_page_in_place_of_code", true); 
} 
+0

谢谢你,这确实解决了这个问题。 – djstamp 2013-03-14 15:47:27

相关问题