本当の答えではありませんが、回避策を共有する必要があると思います。
シンプルな onclientclick="myfunction" で新しい aspx を開きます
function myfunction() {
window.open('downloader.aspx?variable=something', '','width=400,height=200');
}
次に、ページの読み込みにより、クエリ文字列が次のようなダウンロード関数にフィードされます
Download(Request.QueryString("変数"))
とダウンロードが使用できるようになりました
Response.Clear()
Response.ContentType = "text/csv"
Response.AddHeader("Content-Disposition", "filename=myFileName) & ".csv")
次に、文字列ビルダーを使用してヘッダーとcsvを書き出しました
stringBuilder.Append("My Explainitory Header" & vbCrLf)
stringBuilder.Append("column 1 Header, column 2 header" & vbCrLf)
for each record in table
stringBuilder.append(value1 & "," & value2 & vbCrLf)
next
response.write(StringBuilder.toString)
response.end()
response.clear()
ダウンロードだけでなく、ページへの出力を防ぐにはクリアが必要です。結果はブラウザの設定によって異なりますが、保存/開くプロンプト、Excel への自動オープン、または chrome/FF のいずれかでファイルをダウンロードし、ダウンロードしたファイルのリンクを画面下部のダウンロード バーに表示します。自動で開くとファイル名がエクセルで上書きされることがある。
FF Chrome および IE 10-7 で動作
私の場合、最初にいくつかのフォーム処理を行い、次に window.open に scriptmanager.registerstartupscript を実行するため、ポップアップ ブロッカーが問題になりますが、これは回避可能です。