Chad

Chad

  • NA
  • 3
  • 0

Enable button after downloading file

May 29 2010 3:30 PM
Hello everyone,

I am having what seems to be a very simple problem. I am designing a form that has 2 buttons being used. The first button opens up a dialog box to open or save a PDF file. It is enabled by default. The second button is to open up a new page and take an "exam". This button is disabled by default. I want the "Take Test" button to enable after clicking the first button. If I comment out the code that loads the file, this works. Something about the PDF file loading is keeping the second button disabled. Below is my code and I attached the zip file. *Please note: I'm not against using the proper code to open the PDF file in a separate window. If you comment out the line the forces the open/cancel/save dialog box, it will open the file in the SAME window*

using System;
using System.IO;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnModule1_Click1(object sender, EventArgs e)
        {
           
            // Enable Test Button
            btnTest1.Enabled = true;

            // Get the physical Path of the file(test.doc)
            string filepath = Server.MapPath("Module1.pdf");

            // Create New instance of FileInfo class to get the properties of the file being downloaded
            FileInfo file = new FileInfo("E:\\Brighter Tomorrows\\Training\\Module1.pdf");

            // Checking if file exists
            if (file.Exists)
            {               
                // Clear the content of the response
                Response.ClearContent();

                // LINE1: Add the file name and attachment, which will force the open/cance/save dialog to show, to the header
                Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);

                // Add the file size into the response header
                Response.AddHeader("Content-Length", file.Length.ToString());

                // Set the ContentType
                Response.ContentType = ReturnExtension(file.Extension.ToLower());

                // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead)
                Response.TransmitFile(file.FullName);

                // End the response
                Response.End();
                               
            }                                            
        }

private string ReturnExtension(string fileExtension)
        {
            switch (fileExtension)
            {
                case ".htm":
                case ".html":
                case ".log":
                    return "text/HTML";
                case ".txt":
                    return "text/plain";
                case ".doc":
                    return "application/ms-word";
                case ".tiff":
                case ".tif":
                    return "image/tiff";
                case ".asf":
                    return "video/x-ms-asf";
                case ".avi":
                    return "video/avi";
                case ".zip":
                    return "application/zip";
                case ".xls":
                case ".csv":
                    return "application/vnd.ms-excel";
                case ".gif":
                    return "image/gif";
                case ".jpg":
                case "jpeg":
                    return "image/jpeg";
                case ".bmp":
                    return "image/bmp";
                case ".wav":
                    return "audio/wav";
                case ".mp3":
                    return "audio/mpeg3";
                case ".mpg":
                case "mpeg":
                    return "video/mpeg";
                case ".rtf":
                    return "application/rtf";
                case ".asp":
                    return "text/asp";
                case ".pdf":
                    return "application/pdf";
                case ".fdf":
                    return "application/vnd.fdf";
                case ".ppt":
                    return "application/mspowerpoint";
                case ".dwg":
                    return "image/vnd.dwg";
                case ".msg":
                    return "application/msoutlook";
                case ".xml":
                case ".sdxl":
                    return "application/xml";
                case ".xdp":
                    return "application/vnd.adobe.xdp+xml";
                default:
                    return "application/octet-stream";
            }

        }

}

Attachment: Training Module.zip

Answers (2)