2009-08-15 120 views
5

我有一個ASP.NET應用程序正在使用ASP.NET AJAX。我正在使用ASP.NET AJAX Toolkit向用戶展示對話框。當用戶在對話框中點擊「是」時,我想在後面的代碼中處理該事件。但是,我注意到我的點擊事件沒有被達到。下面是主要代碼:ASP.NET + ModalPopupExtender + Click事件

<asp:Panel ID="dialogContinuePanel" runat="server" style="display:none;" DefaultButton="yesButton">  
    <div>Are you sure you want to continue?</div> 
    <div> 
    <asp:ImageButton ID="yesButton" runat="server" AlternateText="Yes" ImageUrl="/resources/yes.png" OnClick="yesButton_Click" /> 
    <asp:ImageButton ID="noButton" runat="server" AlternateText="No" ImageUrl="/resources/no.png" /> 
    </div> 
</asp:Panel> 

<asp:LinkButton ID="hiddenLinkButton" runat="server" Text="" /> 
<cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" OkControlID="yesButton" 
    TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel" 
    CancelControlID="noButton" />      

我的代碼背後:

protected void yesButton_Click(object sender, EventArgs e) 
{ 
    string argument = yesButton.CommandArgument; 
    // Do some processing and redirect the user 
} 

如何處理時使用了ModalPopupExtender一個按鈕單擊事件?我究竟做錯了什麼?

回答

11

您需要從模態彈出式擴展器定義中刪除OkButton屬性。我知道這看起來是違反直覺的,但是當你添加引用時,它實際上把事情掛鉤在客戶端上工作而不引起回發。

所以才嘗試這個辦法:

<cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" 
    TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel" 
    CancelControlID="noButton" /> 
+0

這實際上固定的我有另外一個問題 - 讓一個複選框是一個模式對話框中籤能。將TargetControlID設置爲一個隱藏的鏈接按鈕就可以實現。 - Thnks – MikeD 2010-02-24 16:48:40