ユーザーがボタンをクリックすると、クエリがxlsxをダウンロードできるようになったページが開設されました。 クエリの実行に2〜3秒かかる場合があります。レスポンスウィンドウのダウンロード前にasp.net appのjavascriptコードで実行
<asp:ImageButton id="Bt" OnClientClick=" this.style.display = 'none'; />
とサーバサイドスクリプトが終了します:
は、私はそれがボタンのJSを経由して、通常は簡単な操作であることを知っている
Bt.Style.Add("display", "inline");
しかしxslxを作るために私このコードを使用してください:
response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
response.AddHeader("Content-Disposition", "attachment; filename=name.xlsx");
response.TransmitFile(file_path);
response.Flush();
response.End();
レスポンスコンテキストをクリアすると、他のjavascriptコードをscr ipt(これはうまくいきません)ので、ボタンの表示をインラインに設定する方法がわかりません。
あなたは、クライアントに全く異なる応答を提供している、つまりページを更新せずにファイルを送信するため、サーバー側では機能しません。しかし、同様にクライアント側には、ダウンロードが完了した時点を検出する方法がありません(本質的に同じ理由で、実際のページコンテキスト外では全く別の要求です)。たくさんの人がこれを解決しようとしています:https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=js%20detect%20end%20of%20file%20downloadあなたが見ることができるように、信頼できるか簡単な解決策はありません。 – ADyson