0

ファイルを(csvで)保存する必要があり、条件がある関数を作成しようとしています。それはそのようなものです:

ファイルが 1 MB と小さい場合は、javascript でアラートをポップアップ表示してから、ファイル コマンドとして保存を続行します。

私がしたことは:

if(...)
{
}
else
{
  ClientScript.RegisterStartupScriptBlock(...alert('aaa')...);
}
Response.ContentType = "text/csv";
Response.AppendHeader("Content-Disposition","attachment; filename=file.csv");
Response.TransmitFile("FILE.csv");
Response.End();

名前を付けて保存は正常に機能します。ただし、else の場合はアラートがポップアップしません。やってみRegisterStartupScriptました。多くのオプションを試しました。しかし、それresponse.endがクライアントスクリプトの発生を妨げているようです。

私は c# asp.net (ajax 対応の Web サイトですが、使用されていません)、Visual Studio 2005 で書いています。

これを回避する方法を知っている人はいますか? どうすればそれを機能させることができますか?

ありがとう、ガディム。

4

1 に答える 1

1

問題は、コンテンツ タイプが「text/csv」であるため、サーバーが起動スクリプトをブラウザに送信しないことです。その場合でも、ブラウザーは応答を html ではなく csv ファイルとして処理するため、スクリプトは実行されません。

これを行う方法は、次のようなリダイレクトを起動スクリプトに含めることです。

alert("aaa");
window.loocation.href = "http:\\url-to-return-csv";

URLは、csvを返すように指示するパラメーターを使用して既存のページを指すか、csvを返すhttpハンドラーを作成できます

于 2010-07-17T14:07:17.623 に答える