0

ボタンクリックで優れたドキュメントをエクスポートするページがあります。私がする必要があるのは、Excelドキュメントが送信された後にページを更新することです。

ページを更新するスクリプトを登録しようとしていますが、Excelへのエクスポートと同時に登録できません。

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "test", "alert('Done');", True)

Response.Clear()
Response.ClearHeaders()
Response.AddHeader("Refresh", "3; url=" + Request.RawUrl)
Response.ContentType = strMimeType
Response.AddHeader("content-disposition", "attachment; filename=CompleteReport." + strFilenameExtension)
Response.BinaryWrite(bytFileContent)
Response.End()
4

2 に答える 2

0

あなたが作ることができます

リクエストごとに1つの応答のみ

(最初はエクスポートに優れており、2番目は更新になります)。最初のresponse.endの後は、何もできません。コンポーネントなどを使用して、Excelのエクスポートを別の方法で解決する必要があります。エクスポート後、次のように呼び出すことができます。

Response.redirect("your page");
于 2012-08-23T10:45:26.490 に答える
0

基本的に、ファイルがダウンロードされたにのみリロードしたい場合は、それがいつであるかを知ることができないため、これを行うことはできません。また、応答をクリアしてからExcelを記述しているため、サーバーからスクリプトが返されることもありません。ファイルをダウンロードするときにも、ブラウザは更新ヘッダーを使用していません。

できることは、aspx-pageを使用して次のようなスクリプトを含めることです。

function onclick() {
  window.location.href = 'loadmyfile.ashx?parameters...';

  refreshPage();
}

ただし、上記はクリックするとすぐにページを更新するため、目的のページとは異なる場合があります。

于 2012-08-23T10:38:23.023 に答える