0

アプリケーションにエクスポート ボタンがあります。ボタンをクリックすると、サーバーにポストバックされ、Excel ファイルが生成されます。

プロセス中に読み込み中のgifを表示したいのですが、開く/保存ダイアログが表示されたら、gifを非表示にしたいです。

問題は、Response.End を使用してファイルを開く/保存するダイアログを表示することです。

Response.Endの後にクライアント側の関数を呼び出す方法を知っている人はいますか?

ここに私のコードの一部があります:

     protected void Page_Load(object sender, EventArgs e)
    {
        //starts the loading gif animation.
        btnExport.Attributes.Add("onclick", "setTimeout(\"UpdateImg();\",300);");
    }

    protected void btnExport_Click(object sender, EventArgs e)
    {
        //generates the file
        Response.ContentType = "application/vnd.openxmlformats-  officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;  filename=ExcelDemo.xlsx");
        Response.BinaryWrite(pck.GetAsByteArray());
        Response.Flush();
        //Response.End();
        HttpContext.Current.ApplicationInstance.CompleteRequest(); 

        //HERE I WANT TO STOP THE ANIMATION AND GO BACK TO THE PAGE!
    }

ありがとう、インバル。

4

1 に答える 1

1

この方法では、それを行うことはできません。

ファイルへのデータの送信を開始して保存ダイアログを開くと、Web ページは制御を失い、何もできなくなります。データはすべてファイル保存に移動します。

他に何があり、私の意見では、より良いオプションがあります。

ハンドラー .ashx を使用してファイルを作成して送信し、ファイルの作成に必要なパラメーターを使用してページへのリンクを提供できます。

于 2012-06-10T09:26:46.657 に答える