@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

CSVファイルダウンロードについて。

投稿者投稿内容
日本全国釣行脚
会議室デビュー日: 2003/08/12
投稿数: 16
投稿日時: 2003-09-12 09:40
おはようございます。いつも大変お世話になっております。

CSVファイルのDLについての質問なのですが、
最初はAAAA.ASPXからBBBB.ASPXへ飛んでBBBB.ASPXでCSVファイルのDLをしようと思って
おりました。
これで作成すると(あ、すいません言語はVBです)BBBB.ASPXでDLの小窓が出てうまくDLは
出来ました。ところが、戻るボタンをクリックしてもDLの小窓が出るという現象が起こりました。ネット等々で調べてみたのですが、いまいちよくわかりませんでした。
結局、AAAA.ASPXでボタンを配置してAAAA.ASPX内においてDLをさせるようにすると、
うまく行きました。(戻るボタンも正常に稼動します)

(AAAA.ASPXでの処理が嫌だというのではないのですが、)
BBBB.ASPXへ飛んだ場合、DLがうまく行ったか行かなかったか?という
判定をかませばうまくいくのでしょうか?

このあたりの仕組みがよくわかりません。
どなたかご存知の方、ご教授いただけますでしょうか?
長々と書いてしまって申し訳ございません。
宜しくお願い致します。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-12 10:21
おはようございます。

ちょっと確認を・・・
1.DL小窓が出た時の画面はBBB.aspxでしたか?
2.戻るボタンをクリックした際の処理を追ってみましたか?
3.追った先でDL処理は行っていませんでしたか?

私の推測ですが、
戻るボタンがサーバコントロールであればクリックした際にPostBackが発生するので、
戻るボタンのクリックイベントの前にPost_Backを通ります。
もしかしたら、Page_LoadのところでDL処理をしてしまっているのではないでしょうか?
(PageLoadで直接行っているとは思えないので、その関数を呼んでいるとか・・・)
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-09-12 10:28
ども、ほむらです。
えと、質問に答えるものではないのですが
----------------
とりあえず、日本全国釣行脚氏からの一方的な発言にしか聞こえません。
かなりあせった感じの文章に感じますが、
・要点が絞れていないこと
・再現している不具合の現象のうちで改善したい内容(事柄)が
 うやむやになってしまっていること
・なにより、内容の表現(説明)としていろいろな解釈が出来てしまうこと
以上の3点により、応えを出しにくいです。

以下は個人的予想による回答です。
BBBB.APSXで自動的にCSVファイルをDLする形になっているのかな?
では、その後は?、自動遷移ですか?それともそこで終点?
戻るボタンというのはブラウザのボタンですか?それともページで準備したボタン?

ブラウザの履歴を使用する形の戻るでは
ジャンプの動作をreplace()を使用することで回避できるかもしれません

BBBBB.ASPXにくれば何度もDLしようとするのは仕様だと思います。
やるとしたら自動DLという形をクッキーで制限してあげるくらいでは?
日本全国釣行脚
会議室デビュー日: 2003/08/12
投稿数: 16
投稿日時: 2003-09-12 11:43
まゆりん様、ほむら様、お返事ありがとうございます。

引用----------------------------------------------------------------------------
1.DL小窓が出た時の画面はBBB.aspxでしたか?
2.戻るボタンをクリックした際の処理を追ってみましたか?
3.追った先でDL処理は行っていませんでしたか?

戻るボタンがサーバコントロールであればクリックした際にPostBackが発生するので、
戻るボタンのクリックイベントの前にPost_Backを通ります。
--------------------------------------------------------------------------------
1に関してはBBB.ASPXはDLのみの画面ですので、実際DLの小窓表示はAAA.ASPXです。
2に関してはResponse.write("A")で「A」をはかせようとしたのですが、はきませんでした。
3に関しては確認していませんでした。

・「戻るボタン」はAAAA.ASPXにあるのですが、
 クリック時には「Back_Button(Sender As Object, E As EventArgs)」に
 行くようにしております。
・Page_Load時に if not Page.IsPostBack と記述しておりますが、
  DLの記述は入れておりません。

BBB.ASPXに関してはPage_loadでDLを行っております。


引用----------------------------------------------------------------------------
・要点が絞れていないこと
・再現している不具合の現象のうちで改善したい内容(事柄)が
 うやむやになってしまっていること
・なにより、内容の表現(説明)としていろいろな解釈が出来てしまうこと
以上の3点により、応えを出しにくいです。
--------------------------------------------------------------------------------
申し訳ございません。
質問させて頂いているのに、
「わかりにくい/色々な解釈が出来る」
は問題外ですね。。。。。。
すいませんでした。気をつけます。

引用----------------------------------------------------------------------------
BBBB.APSXで自動的にCSVファイルをDLする形になっているのかな?
では、その後は?、自動遷移ですか?それともそこで終点?
戻るボタンというのはブラウザのボタンですか?それともページで準備したボタン?
--------------------------------------------------------------------------------
BBBB.ASPXでは自動的にDLさせる形になっております。
終わった後にResponse.redirect("AAAA.ASPX")を記述しております。
「戻るボタン」は準備したボタンです。

質問させて頂いた、内容をまとめてみました。
・AAAA.ASPXからBBBB.ASPXへ遷移させてDLさせる場合において
  1.DLの小窓は表示されて、うまくDLは出来る
  2.ただし、AAAA.ASPXの「戻るボタン」をクリックしても小窓が出てしまう

です。色々申し訳ございません。

ヲヲヌキ
会議室デビュー日: 2002/09/26
投稿数: 3
投稿日時: 2003-09-12 13:41
「戻る」ボタンを自分で準備したそうですが、そのボタンを押下したときの動作はどのようなものでしょうか?
クライアント側スクリプトでhistory.back() でしょうか?

もしそうならブラウザの履歴を確認してください。
リダイレクト後のAAA.aspxの前のページはBBB.aspxになっています。
よって、AAA.aspxから履歴一つ分戻るとダウンロードになってしまうのではないかと。
日本全国釣行脚
会議室デビュー日: 2003/08/12
投稿数: 16
投稿日時: 2003-09-12 14:06
ヲヲヌキ様、お返事ありがとうございます。

引用----------------------------------------------------------------------------
クライアント側スクリプトでhistory.back() でしょうか?
--------------------------------------------------------------------------------

Response.Redirect ("CCCC.ASPX")
としております。

色々みなさん、申し訳ございません。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-09-12 16:06
ども、ほむらです。
読み返してみるとすこしきつめの言い方になってしまっていましたね。
日本全国釣行脚氏あまり気になさらずに次回からの参考にしていただければ幸いです。

別に質問するときに限ったことでなく答える側に回ったときも
要点を絞り込む必要はあるでしょうしね。
#人は自分が思うほどには思っていることを理解してくれません。
------------------
さて、本題です。
ここまでの話で僕の想像としてはこういうことですか?

ページ遷移としては
AAAA.ASPX → BBBB.APSX → AAAA.APSX となっていて

AAAA.ASPXでは、DL可能なCSVファイルのリンクがあるけど
実際のリンク先にはBBBB.ASPXが指定されていてここでDLの作業が行われると。

ということは、
BBBB.ASPXはDL専用のページで表示自体はされないということですね。
内容的にはCSVファイルのDL後AAAA.ASPXにリダイレクトする形になっているだけと

問題になっているのは、BBBB.ASPXでCSVファイルをダウンロードした後に
遷移したAAAA.ASPXでサーバーコントロールの戻るボタンを押したときにも
BBBB.ASPXにあるようなダウンロードの表示が出てしまうと。。。。

AAAA.ASPXの戻るボタンがよくわかわりませんね。
とりあえずサーバーコントロールのボタンで
CCCC.ASPXにリダイレクトする形になっているのでしょうか?

このCCCC.ASPXに問題はありませんか?
Back_Button(Sender As Object, E As EventArgs)のトレースはしてみましたか?
仮にBBBB.ASPXでリダイレクトの部分をなくした場合は?

あと、BBBB.ASPXでDL後はリダイレクトする形でなくてhistory.back()
のスクリプトを実行する形ではいけませんか?

# えらそうなこと言ってますがASPXわかってません(^^;;;;;;;;;
# たとえばサーバーコントロールって何?の世界です(マテ
# この辺は識者の方にまかせます(スマ


[ メッセージ編集済み 編集者: ほむら 編集日時 2003-09-12 16:10 ]
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-12 16:17
うーん。
文章だけでは原因を特定できませんね。
かと言ってコードを載せるにも量が多そうですし・・・。

ところで、戻るボタンはサーバコントロールですか?
であれば、Page_Loadにブレークポイントを置いて
1ステップずつ追えば必ず原因が見つかると思うのですが。

#・・・と思って根気良く原因を探したら
#ただのケアレスミスだったりすることが過去に多々・・・

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-09-12 16:21 ]

スキルアップ/キャリアアップ(JOB@IT)