Asp.Netダウンロードファイル/エクスポートファイル応答なし/ダウンロードボックスが弾けない

2969 ワード

開発の仕事の中で、いろいろな問題に直面して、あるのはとてもおかしくて、いつも
実行が自分の望む結果ではないか、
私たちが本当に解決方法を知ってから、「ああ、ここの原因だったのか」と知った.
一度の作業では、レポートファイルをダウンロードする機能を追加するには、簡単です.ページにボタンを追加し、ボタンサーバーイベントを書けばいいのですが、このように簡単で問題に直面しました.
 protected void btnDownload_click(object sender, EventArgs e)    

    {

        if (!string.IsNullOrEmpty(ReportCurrent.Text.Trim()))

        {

            string path = "~/" + ReportCurrent.Text.Trim();

            string filePath = Server.MapPath(path);

            if (!File.Exists(filePath))

            {

                PublicClass.setMessage(this, "");

                return;

            }

            Response.Clear();

            Response.ClearContent();

            Response.ClearHeaders();

            Response.ContentType = "application/octet-stream";

            Response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(filePath));

            Response.TransmitFile(filePath);

            Response.Flush();

            Response.End();

        }

    }

ネット上のダウンロード機能のコードは大同小異で、コードのように実現方式は、実行後は応答がなく、反応がなく、ファイルのダウンロードボックスが弾けない.
その理由は、このダウンロードボタンがのにあるため、
サブノードに追加する必要があります

 

ここでControl IDはボタンの位置を指定し、
ページ-->UpdatePanel-->ContentTemplate->ユーザーコントロール-->ダウンロードボタン、
ユーザーコントロールのIDを書き込む必要があります.
ダウンロードボタンが直接ページにある場合
ページ-->UpdatePanel-->ContentTemplate->ダウンロードボタン、
ダウンロード/エクスポートボタンのIDを書き込む必要があります.
Exce/xlsのエクスポートもダウンロードであり、同様の問題が発生する可能性があります.