2013-03-13 88 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

相關問題