Button in ModalPopupExtender not calling server function

Posted on 2007-11-27
Medium Priority
Last Modified: 2012-05-05
I have a page with a print button that first calls a ModalPopupExtender that asks the user what reports they want to print (3 radio buttons, "Print" button and "Cancel" button). The "Cancel" button dismisses the ModalPopup as expected. The "Print" button should then call a Sub routine to check which radio button is selected, generate the appropriate report for printing and dispaly it in a new ModalPopup.

My problem at this this stage is that when I click the "Print" button the page will display the second ModalPopup, but does not call the server routine to check the values from the first popup or populate the second one.
' Code in .aspx
<asp:Panel ID="pnlReport" runat="server" CssClass="ReportButtons" Visible="false">
	<asp:ImageButton ID="btnPrint" runat="server" ImageUrl="~/Images/Icon/print.gif" />
<asp:Panel ID="pnlPrint" runat="server" CssClass="modalPopup" style="display: none;">
	<h3>Select reports to print:</h3>
	<p><asp:RadioButton ID="rbAgent" runat="server" GroupName="Report" Checked="true" /> Agent - Property information<br />
	<asp:RadioButton ID="rbBuyer" runat="server" GroupName="Report" /> Buyer - Property Information (Excludes owner and sale information)<br />
	<asp:RadioButton ID="rbAgentBuyer" runat="server" GroupName="Report" /> Agent & Buyer - Property Information</p>
	<div class="center">
		<asp:Button ID="btnPrintPrint" runat="server" Text="Print" />
		<asp:Button ID="btnPrintCancel" runat="server" Text="Cancel" />
<cc1:ModalPopupExtender ID="mpePrint" runat="server" TargetControlID="btnPrint" PopupControlID="pnlPrint" CancelControlID="btnPrintCancel" OkControlID="btnPrintPrint" BackgroundCssClass="modalBackground" DropShadow="true"></cc1:ModalPopupExtender>
<asp:Panel ID="pnlPrintOutput" runat="server" CssClass="modalPopup" style="display: none;">
	<asp:Label ID="lblPrintOutput" runat="server"></asp:Label>
<cc1:ModalPopupExtender ID="mpePrintOutput" runat="server" TargetControlID="btnPrintPrint" PopupControlID="pnlPrintOutput" BackgroundCssClass="modalBackground"></cc1:ModalPopupExtender>
' Code in .aspx.vb
' This routine never gets called
Protected Sub btnPrintPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrintPrint.Click
    If rbAgent.Checked Then
        lblPrintOutput.Text = sbAgentReport.ToString
    End If
End Sub
Protected Sub GenerateAgentReport()
End Sub

Open in new window

Question by:DerekWatling
  • 4

Accepted Solution

S31B1 earned 750 total points
ID: 20356690
Remove the property [OkControlID="btnPrintPrint"] from the first Modal Extender, if you use this property it deals with everything on the clientside, remove it and it will force a server side action.

Author Comment

ID: 20357004
Still not having any luck. I have set break points in my code, but it never seems to get there.

Author Comment

ID: 20357341
This is all inside an UpdatePanel inside a TabPanel inside an UpdatePanel and uses a MasterPage.

"pnlReport" has to stay where it is. When I try moving the 2 modal panels outside the inner UpdatePanel or to the begining/end of the page I get the following runtime errors respectively:
    "An extender can't be in a different UpdatePanel than the control it extends."
    "The TargetControlID of 'mpePrint' is not valid. A control with ID 'btnPrint' could not be found."

Author Comment

ID: 20358070
Been experimenting all afternoon and found that if I only have 1 ModalPopupExtender everything works as expected. As soon as I add the 2nd one it doesn't! Is this a bug with AJAX? I'm using Visual Web Developer 2008 Express, ASP.NET 2.0 AJAX Extensions 1.0.61025, Ajax Control Toolkit 10920 and testing in IE7.

Ultimately what I want to achieve is to be able to generate a reports for printing and emailing. I plan on doing this as HTML and using CSS for page breaks, etc. I already have the data on the page and have stored it in a Public Shared DataRow variable so that I don't need to re-query the database. Our current system brings up the report in a new popup window. Due to the number of calls we already recieve from clients who have problems because of (multiple) popup-blockers I want to generate the report on the same page, either in a modal popup or a tab panel. This brings me to the problem of how to only print the contents of the selected panel. Would putting it in an <IFRAME> solve this issue? Any other suggestions?

Author Comment

ID: 20363882
I am assigning the points for a partial solution and valuble information.

Regarding my printing issue I have posted a new question at http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22986940.html

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Free Data Recovery software is an advanced solution from Kernel Tools to recover data and files such as documents, emails, database, media and pictures, etc. It supports recovery from physical & logical drive after a hard disk crash, accidental/inte…
Watch the video to know the simple way to remove or recover or reset lost or forgotten passwords of Outlook PST file. With Kernel Outlook Password Recovery tool such operation is very easy to perform. It is a freeware with limitation to use with 500…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question