質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

2回答

5516閲覧

asp.net iframe内の処理状況をメイン画面に伝えたい

sar

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2016/03/17 16:52

編集2016/03/17 17:22

C#でwebアプリを作成しています。
main.aspxの中に、iframeを配置しており、download.aspxというページを埋め込んでいます。

main.aspx上のボタンをクリックすると、download.aspxがロードされ、
CSVファイルをクライアント側にダウンロードする仕組みとなっています。

CSVのダウンロードには、Response オブジェクトを使用しており、
最後はresponse.endで処理が終了します。

ここで、download.aspxでの処理が終わったときに、main.aspxのラベルに
「終了しました」という旨のメッセージを表示したいのですが、
どういった方法があるかご教授いただけないでしょうか。

javascriptを用いる他なさそうだと考えているのですが、download.aspxから
parentのオブジェクト(ラベル)にテキストを表示しようにも、画面に更新がかからないためか更新されません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ダウンロードの完了を画面に出したいという目的でしたら、iframeにダウンロードをさせるというアプローチでは無理です。

詳しいコーティングは調べていただくとして、実現性のあるアプローチはCSVをAjaxでローカルストレージにまず取り込み、終わった時点でダウンロード完了表示、最後にそれをローカルからダウンロードさせるという手順です。

投稿2016/03/17 23:04

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sar

2016/03/18 04:16

ご回答ありがとうございます。ローカルストレージからダウンロードとはどういう意味になりますか?サーバーからローカルにcsvがダウンロード出来た時点で、処理は終了かと考えているのですが、、
guest

0

ファイルダウンロードが完了したことを検知するイベント等はHTMLDOMに存在しないため、少しスクリプトを書く必要があります。
サーバー側ではファイル本体を返信する際に Response のcookieにダウンロード完了を示すキーを追加。クライアント側では、スクリプトでタイマー処理をループさせ、document.cookie にキーが現れるのを待つ、という戦略が考えられます。
ただし、ファイル保存ダイアログに対して「保存」「キャンセル」のどちらの操作が行われたかについては、検知する方法は無いと思います。

ご参考になれば。

投稿2016/03/18 00:03

tkanda

総合スコア2425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sar

2016/03/18 04:21

ご回答ありがとうございます。クライアント側のスクリプトはmain.aspxに書くことになりますか?その場合、download.aspxと、responseオブジェクトが別になるため、どのようにcookieを検知すれば良いでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問