0

ユーザーが検索条件を入力して、一致するレコードを表示できるページがあります。また、ユーザーが一致するレコードをダウンロードできるようにするためのダウンロード ボタンもあります。

「ダウンロード」をクリックすると、データをダウンロードする前に最初にレコード表示が更新されるようにコーディングするにはどうすればよいですか?

これは、ダウンロードに使用しているコードです。

Response.ClearContent();
Response.ClearHeaders();

using (MemoryStream outputStream = new MemoryStream())
{
    // some details elided...
    outputStream.Write(documentData, 0, documentData.Count());

    string fileName = GenerateFileName();

    Response.AppendHeader("content-disposition", String.Format("attachment; filename={0}", fileName));
    outputStream.Flush();
    outputStream.WriteTo(Response.OutputStream);
}
Response.Flush();
Response.Close();
4

2 に答える 2

1

ブラウザに返信できる応答は 1 つだけです。データを更新するか、新しいヘッダーを送信してダウンロードを開始します。

両方を作成するには、おそらく JavaScript や ajax 呼び出しを使用して手順を変更する必要があります。

HTTP プロトコルの仕組み: http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html

于 2012-06-25T10:44:34.850 に答える
0

最初に AJAX を介してページを更新し、次にファイルをダウンロードするための非 AJAX 要求を行う JavaScript メソッドを作成します。Aristos が言うように、これは 1 回の要求で行うことはできません。別の解決策は、最初にファイルをダウンロードし (非 ajax)、次に ajax を使用せずにページを更新することです。通常、ajax 以外の新しいリクエストが行われた後、javascript コードを正しく実行することはできませんが、ファイルをダウンロードするだけであれば、次のリクエストを送信するためにコードが実行を継続する可能性があると思います。

于 2012-06-25T10:50:23.470 に答える