2009-08-15 52 views
5

Tôi có một ứng dụng ASP.NET đang sử dụng ASP.NET AJAX. Tôi đang sử dụng ASP.NET AJAX Toolkit để trình bày một hộp thoại cho người dùng. Khi người dùng nhấp vào 'Có' trong hộp thoại, tôi muốn xử lý sự kiện đó trong mã phía sau. Tuy nhiên, tôi nhận thấy rằng sự kiện nhấp chuột của tôi không được tiếp cận. Đây là mã chính:ASP.NET + ModalPopupExtender + Nhấp vào Sự kiện

<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" />      

Mã My Đằng sau:

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

Làm thế nào để xử lý sự kiện click của một nút được sử dụng với một ModalPopupExtender? Tôi đang làm gì sai?

Trả lời

11

Bạn cần phải loại bỏ thuộc tính OkButton khỏi định nghĩa bộ mở rộng bật lên phương thức của mình. Tôi biết điều này có vẻ phản trực giác, nhưng khi bạn thêm tham chiếu đó, nó thực sự móc mọi thứ lên để làm việc ở phía máy khách mà không gây ra postback.

Vì vậy, chỉ cần cố gắng này:

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

Điều này thực sự cố định một vấn đề tôi gặp phải - nhận được một hộp kiểm để được kiểm tra-thể trong một hộp thoại modal. Đặt TargetControlID thành một nút liên kết ẩn đã thực hiện thủ thuật. - Thnks – MikeD

Các vấn đề liên quan