I want show a modal popup after my PDF file gets downloaded

I want to show a modal pop up after my pdf gets downloaded successfully,everything is working but after response.end as you know no code gets executed I have tried with scriptmanager to open the modal but there was no success .Please help any help would be beneficial.

I think no code gets executed after response.end()

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HotelBAL;
using System.Data;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using System.Web.Services;
using System.Web.Script.Services;

namespace HotelReservation.UserView
{
public partial class CancelBooking : System.Web.UI.Page
{
static int uid = 0;

            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["UName"] == null)
                {
                    Response.Redirect("../Views/Login.aspx");
                }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "stepconfirm3", "$('#loginbtn').hide();", true);
                    uid = Convert.ToInt32(Session["UId"]);  
                }
            }

            public  void BillDownloader(int uid, int bookingId, int totalPrice)
            {
                try
                {
                    //PdfPTable pdfTable = 
                    DataTable dt = FileUtilityBal.CancelgeneratePDF(uid, bookingId);
                    GridView objGV = new GridView();
                    objGV.AutoGenerateColumns = false;
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        BoundField boundField = new BoundField();
                        boundField.DataField = dt.Columns[i].ColumnName.ToString();
                        boundField.HeaderText = dt.Columns[i].ColumnName.ToString();
                        objGV.Columns.Add(boundField);

                    }
                    objGV.DataSource = dt;
                    objGV.DataBind();
                    int columnsCount = objGV.Columns.Count;
                    PdfPTable pdfTable = new PdfPTable(columnsCount);

                    //Header
                    BaseFont btnColumnHeader = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
                    Font fntColumnHeader = new Font(btnColumnHeader, 10, 1);
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        PdfPCell cell = new PdfPCell();
                        cell.AddElement(new Chunk(dt.Columns[i].ColumnName.ToUpper(), fntColumnHeader));
                        pdfTable.AddCell(cell);
                    }

                    //DataTable
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            pdfTable.AddCell(dt.Rows[i][j].ToString());
                        }
                    }

                    Document pdfDocument = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
                    PdfWriter.GetInstance(pdfDocument, HttpContext.Current.ApplicationInstance.Response.OutputStream);
                    pdfDocument.Open();

                    var FontColour = new BaseColor(192, 192, 192);
                    var Calibri8 = FontFactory.GetFont("CALIBRI_BOLD", 35, FontColour);
                    Paragraph paragraph = new Paragraph("Cancellation Details", Calibri8);
                    paragraph.Alignment = Element.ALIGN_CENTER;
                paragraph.SpacingAfter = 10f;
                iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(HttpContext.Current.ApplicationInstance.Server.MapPath("../") + "/images/h-logo.jpg");
                jpg.ScaleToFit(150, 150);
                jpg.Alignment = Element.ALIGN_CENTER;
                pdfDocument.Add(jpg);
                pdfDocument.Add(paragraph);

                pdfDocument.Add(pdfTable);
                var FontColour1 = new BaseColor(192, 192, 192);
                var Calibri9 = FontFactory.GetFont("CALIBRI_BOLD", 35, FontColour1);
                Paragraph p7 = new Paragraph("Invoice", Calibri9);
                p7.Alignment = Element.ALIGN_CENTER;
                p7.SpacingAfter = 30f;
                pdfDocument.Add(p7);
                var FontColour2 = new BaseColor(255, 87, 51);
                var Calibri10 = FontFactory.GetFont("CALIBRI_BOLD", 15);
                var Calibri11 = FontFactory.GetFont("CALIBRI_BOLD", 15, FontColour2);
                Paragraph p2 = new Paragraph("       Refund Price (50% of Total)     Rs." + (totalPrice * 0.50) + "                     ", Calibri10);
                Paragraph p5 = new Paragraph("------------------------------------------------------------------------------------------------", Calibri10);
                Paragraph p6 = new Paragraph("                       TOTAL           Rs." + ((totalPrice * 0.50)) + "                     ", Calibri11);
                p2.Alignment = Element.ALIGN_CENTER;
                p2.SpacingBefore = 30f;
                pdfDocument.Add(p2);
                p5.Alignment = Element.ALIGN_CENTER;
                p5.SpacingBefore = 30f;
                pdfDocument.Add(p5);
                p6.Alignment = Element.ALIGN_CENTER;
                p6.SpacingBefore = 10f;
                pdfDocument.Add(p6);
                Paragraph p8 = new Paragraph("CANCELLATION POLICY\n• Reservations made over 11-16 Sep 2018, 28-31 Dec 2018, 1-4 Jan 2019, 8-10 Aug 2019 and 28 Dec 2019 - 4 Jan 2020 require full pre-payment and are non-cancellable, non-amendable and non-refundable. The entire period of your stay, inclusive of nights before and after the dates listed above, will be charged to your credit card upon reservation.\n• Cancellation of and/or amendments to your reservation must be made 48 hours (i.e., by 4pm Singapore time) prior to your arrival date.\n• Cancellation or amendment made within 48 hours of arrival will incur a cancellation fee of one night's room charge (inclusive of any applicable prevailing government tax).\n• In the event of no-show, a fee of one night's room charge (inclusive of any applicable prevailing government tax) will be charged to your credit card provided at the time of reservation.");
                p8.Alignment = Element.ALIGN_LEFT;
                p8.SpacingBefore = 20f;
                pdfDocument.Add(p8);
                pdfDocument.Close();
                //.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", " $('#MyModal').modal('show') ;", true);
                Response.ContentType = "application/pdf";
                Response.AppendHeader("content-disposition", "attachment;filename=hotel.pdf");
                Response.Cookies["cookie"].Value = "cookie value";
                Response.Cookies["cookie"].Expires = DateTime.Now.AddMinutes(1); 
                Response.Write(pdfDocument);
                Response.Flush();
                Response.End();
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }
        }

        protected void btnSubmit_Click1(object sender, EventArgs e)
        {
            CancelBookingBal bal = new CancelBookingBal();

            int BookingID = Convert.ToInt32(bid.Value);
            int uId = Convert.ToInt32(uid);
            int amount = 0;
            if (bal.updateUser(BookingID, uId))
            {
                amount = UserBookingBal.getBookingAmt(BookingID);

                BillDownloader(uId, BookingID, amount);
            }
        }
    }
}

The aspx page is as follows

    <%@ Page Title=“” Language=“C#” MasterPageFile=“~/UserView/UserMasterPage.Master” AutoEventWireup=“true” CodeBehind=“CancelBooking.aspx.cs” Inherits=“HotelReservation.UserView.CancelBooking” ClientIDMode=“Static” EnableViewState=“true” %>

&lt;asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"&gt;
&lt;/asp:Content&gt;
&lt;asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"&gt;

    &lt;style&gt;
        .hidden { display: none; }
    &lt;/style&gt;

    &lt;div class="container"&gt;
        &lt;div class="row"&gt;
            &lt;div class="form-control"&gt;
                &lt;br /&gt;
                &lt;br /&gt;
                &lt;h1&gt;Cancel Booking&lt;/h1&gt;
                &lt;br /&gt;
                &lt;br /&gt;

                &lt;div class="form-group"&gt;
                    &lt;label for="bno"&gt;Enter the booking number to cancel:&lt;/label&gt;
                    &lt;input type="text" class="form-control" id="bid" placeholder="Enter Number" name="bno" runat="server" /&gt;
                &lt;/div&gt;

                &lt;asp:Button ID="btnSubmit" runat="server" Text="Submit" CssClass="btn btn-primary" OnClick="btnSubmit_Click1"   /&gt;
               &lt;%-- &lt;button type="submit" id="cancelbtn" class="btn btn-primary" data-toggle="modal" runat="server"&gt;Submit&lt;/button&gt;--%&gt;
            &lt;/div&gt;

            &lt;div class="modal" id="MyModal"&gt;
                &lt;div class="modal-dialog"&gt;
                    &lt;div class="modal-content"&gt;

                        &lt;!-- Modal Header --&gt;
                        &lt;div class="modal-header"&gt;
                            &lt;h4 class="modal-title"&gt;Modal Heading&lt;/h4&gt;
                            &lt;button type="button" class="close" data-dismiss="modal"&gt;&amp;times;&lt;/button&gt;
                        &lt;/div&gt;

                        &lt;!-- Modal body --&gt;
                        &lt;div class="modal-body"&gt;
                            You have successfully cancelled the Reservation !!!
                        &lt;/div&gt;

                        &lt;!-- Modal footer --&gt;
                        &lt;div class="modal-footer"&gt;
                            &lt;button type="button" class="btn btn-danger" data-dismiss="modal"&gt;Close&lt;/button&gt;
                        &lt;/div&gt;

                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;
    &lt;/div&gt;

&lt;/asp:Content&gt;
&lt;asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"&gt;
&lt;/asp:Content&gt;

I have tried with scriptmanager to open the modal

 ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", " $('#MyModal').modal('show') ;", true);

I want to show modal to popup after the pdf gets downloaded.


#c-sharp #asp.net

4 Likes14.75 GEEK