- PR -

ページが変わった時のイベント

投稿者投稿内容
タコ
会議室デビュー日: 2006/08/04
投稿数: 4
投稿日時: 2006-08-04 02:32
Visual Studio 2005 でWebサイトの作成を行っております。

Response.Redirect()でページ移動させているのですが、ページの終了イベントについてご教授下さい。
VisualBasic の Form_Unload() イベントに相当するのはやはりPage_Unload() でよいのでしょうか?

あ!あと一つご教授下さい。
Page_Unload() の中で
Request.ServerVariables("APPL_PHYSICAL_PATH")
を実行するとサーバーエラーになってしまいます。
これって当然なのでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-04 04:06
WindowsのアプリケーションとWEBアプリケーションとでは仕組みがまったく違います。
WEBのしくみをどこまで知ってるかわからないので伝わるかわかりませんが、
引用:
VisualBasic の Form_Unload() イベントに相当するのはやはりPage_Unload() でよいのでしょうか?

「相当する」とは思いませんが、Pageのインスタンスがメモリからなくなるとき発生します。
まぁマニュアルを確認しましょう

これはResponse.Redirectとは殆ど関係ありません。初回のアクセスでも、クライアントに応答を返して、
Pageのインスタンスが消えれば発生するでしょうし。
他のページに移動した時に初めて発生するものではありません(そんなイベントはないでしょうきっと)

引用:
あ!あと一つご教授下さい。
Page_Unload() の中で
Request.ServerVariables("APPL_PHYSICAL_PATH")
を実行するとサーバーエラーになってしまいます。
これって当然なのでしょうか?

実行って?
Request.ServerVariables("APPL_PHYSICAL_PATH")
と書いただけだったらコンパイル通りませんよね。どんなエラーが出たかも書くべきです。

全体的に、そもそも何がしたくて困っているのでしょうか
タコ
会議室デビュー日: 2006/08/04
投稿数: 4
投稿日時: 2006-08-04 10:18
ベルさん早速のレスありがとうございます。

>全体的に、そもそも何がしたくて困っているのでしょうか
ページが変った時にそのページに入力された情報を保存したい。。。という事から始まっています。
保存ボタンは設けているのですが^^;
それで Form_Unload() イベントのようなものがあれば・・・と考えた次第です。

保存の方法ですが、現在ローカルマシン側に xmlファイル を作り、そこへ保存しようとしたわけです。
その為ローカルマシン側のパスが必要となり Request.ServerVariables("APPL_PHYSICAL_PATH") で取得しようとした。という次第です。

Page_PreRender() イベントで xmlファイル から既保存のデータを読み出し
ページに初期セットしているのですが、その際同じように Request.ServerVariables("APPL_PHYSICAL_PATH") を使っていますが何の問題もなく使えています。

>どんなエラーが出たかも書くべきです。
Dim LocalPath As String = Request.ServerVariables("APPL_PHYSICAL_PATH")
尚、コンパイル時のエラーではなく実行時のエラーで
「このコンテキストでは要求が有効ではありません」
という内容です


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-04 10:31
> 保存の方法ですが、現在ローカルマシン側に xmlファイル を作り、そこへ保存しようとしたわけです。

セキュリティ的に問題があるとは思いませんか?
いまのブラウザは簡単にはこんなことができないようになっています。
Webの仕組みをきちんと理解して仕様を作っていかないと破綻しそうな気がします。
タコ
会議室デビュー日: 2006/08/04
投稿数: 4
投稿日時: 2006-08-04 11:09
どっとねっとふぁん さんありがとうございます。
セキュリティ上問題があるのは承知しております。
それでも良いから。という了解は得ています。

当初はサーバサイドにxmlデータとして・・・とい構想だったのですが
今となってはイタシカタアリマセン。

>破綻しそうな気がします
どのような解決方法がよいのでしょう?
今の私では上手い説得の言葉が見つけられないのですが
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-04 11:30
引用:

タコさんの書き込み (2006-08-04 10:18) より:

保存の方法ですが、現在ローカルマシン側に xmlファイル を作り、そこへ保存しようとしたわけです。


毎回ユーザ側に入力結果をダウンロードさせるようにすれば出来るかも知れないけれど、
これだと、毎回ファイルの保存ダイアログが出てしまう。。。

出来ない。と思ったほうが良いと思いますよ。

引用:

その為ローカルマシン側のパスが必要となり Request.ServerVariables("APPL_PHYSICAL_PATH") で取得しようとした。という次第です。


これは Webサーバ の物理ディレクトリであって、
クライアントの物理パスではありませんよね。
タコ
会議室デビュー日: 2006/08/04
投稿数: 4
投稿日時: 2006-08-04 19:17
皆様ありがとうございます。

>出来ない。と思ったほうが良いと思いますよ。
ふむ〜困りました^^;
何とか実現しなければならないのですが(大汗

>これは Webサーバ の物理ディレクトリであって、クライアントの物理パスではありませんよね。
そうなんですか?!
実機で試験はまだ出来ないのでVisualStudioのデバッグで何とか動いているのでまぁイイっか・・・位の感覚ででした。
それで、てっきりクライアント側の物理パスだと思っていました(コレマタ大汗
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-08-04 19:52
引用:

ページが変った時にそのページに入力された情報を保存したい。。。という事から始まっています。



ViewState
Session
クッキー
クエリ文字列
データベース
などに保持する。

Webアプリケーションの状態管理
http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_01.html



あと、複数の画面を一つのWebフォームで管理するという手もあります。
# 値の受け渡しが簡単
 
ウィザード式の画面を一元管理するWizardコントロール
MultiView&Viewコントロールによるマルチビュー画面の構築
http://www.atmarkit.co.jp/fdotnet/asp2review/asp2review03/asp2review03_03.html

[ASP.NET]1つのWebフォーム内で一覧/詳細画面を切り替えるには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/354aspplchldr/aspplchldr.html

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