- - PR -
CSVファイルのダウンロード
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-12-03 08:12
GOH さんが System.Web.UI.WebControls.HyperLink を使っていると仮定して、
Target プロパティに _top をセットしてみて下さい。 そうでなければ、HTML で下記のように書くとどうでしょうか? <a href="リンク先のURL" target="_top">ダウンロード</a> |
|
投稿日時: 2004-12-03 09:18
HyperLinkは使っておりません。
方法としてはSystem.Web.UI.WebControls.Buttonに カネさんと同じようなコードを書いて submitした戻りにダウンロードさせるようにしています。 Response.Clear() Response.AddHeader("Content-Disposition", "attachment;filename=test.csv") Response.ContentType = "application/octet-stream" Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift-JIS") strData = 内容 Response.Write(strData) Response.Flush() そもそもsubmit時に行おうとしていることが間違っているのでしょうか? |
|
投稿日時: 2004-12-03 12:16
あ、submit の時でしたか。
そうなるとちょっと分かりません。 すみません、よく読まずにレスしてしまいました。m(_ _)m |
|
投稿日時: 2004-12-03 21:44
Response.Flushの後に、Response.Endを入れると、どうなりますか?
HttpResponse.Endメソッドは、その時点でアプリケーションの実行を停止します。このメソッド呼び出し以降は実行されません。反対にいうと、Endメソッドをコールしていないと、必要なデータの後ろにそのページのレンダリングデータという、余分なデータを付加してクライアントに返します、ということです。 _________________ |
|
投稿日時: 2005-02-14 05:55
見ている人が多いけど、解決に至っていなくて
終わっているので、私の経験談を書いておきます。 私の場合は、submitしてダウンロード後に、javascript、 doPostBackが動かなくなってしまって、はまりました。 ダウンロードの保存ダイアログが出るために、画面が更新されない為だと どこかに書いてありました。(初歩的なことらしいです。) 解決方法 1.Formの最後に隠しiframeを付ける。 </form> <iframe id="csvdummy" name="csvdummy" width="0" height="0" scrolling="no" frameborder="0"></iframe> </body> </HTML> 2.Page_Load時にダウンロード処理を行うかどうかのフラグ的な ものとして<input type=hidden>を作る。 <input type="hidden" name="download" id="download" value=""> 3.ボタンのonclickでjavascript:downloadCsv()を呼ぶ。 4.javascriptでtargetを隠しiframeにする。 function downloadCsv() { Form1.download.value = "downloadCsv"; Form1.target = "csvdummy"; Form1.submit(); Form1.download.value = "" Form1.target = ""; } 5.Page_loadでForm1.download.valueに"downloadCsv"があれば CSVのダウンロード処理を行う。 6.CSVのダウンロード処理は、以前の投稿してある通り。 (それか、検索すればいろいろ出てくると思います。) 最初に投稿された方の解決になっていないかもしれませんが 載せておきます。 「こんなの当然のことだ」と言われる方がいましたら 初心者ですので、ご容赦を。。。 |