- - PR -
2回目のPage_Loadが処理されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-17 16:26
「フレーム」「Session」などを検索して「件名:Page_Load を通らない」などを
読んだのですが解決できなかったので質問させてください。 使用言語:ASP.NET(VB.NET) OS:Windows2000 ブラウザ:IE5.5以上 〜動作〜 A.aspxにフレームにてB.aspxを表示しています。 B.aspxにはDataGridにてデータを一覧表示しています。 B.aspxの一覧から行を選択し、A.aspx画面のボタンを押下後に B.aspx.vbにて選択行のデータを抽出してSessionに 登録した後javascriptにてC.aspxに遷移しています。 Dim script As New System.Text.StringBuilder() script.Append("<script language=""JavaScript"">") script.Append("window.open('C.aspx', '_top');") script.Append("</script>") Page.RegisterStartupScript("authenticated", script.ToString) C.aspxのPage_LoadにてSessionを取得しています。 C.aspxを最初に表示した時には問題ないのですが C.aspxの戻るボタンによりA.aspxに戻ったあとに またC.aspxに遷移するとPage_Loadが処理されません。 「件名:Page_Load を通らない」にて「ログアウト処理をおこなうことにより、 セッションを切ることが出来、Page_Loadをすっとばすことなくログイン認証が出来ました。」と あるので、Sessionを切ることによって再度Page_Load処理が行われると思い、 C.aspxから戻る時にセッションの破棄「Session.Abandon()」を行ってみたのですが やはり2回目の表示の時にPage_Loadが実行されません。やり方が違うのでしょうか? AutoEventWireup属性はfalseにしてありますが、 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load とイベントハンドラの宣言部にHandlesキーワードを使用してます。 試しにAutoEventWireup属性をtrueにしましたが2回目のPage_Loadは動きませんでした。 2回目の表示の時にもPage_Loadイベントを実行させるにはどうしたら よろしいのでしょうか? ASP.NETに携わって2ヶ月目です。分からないことが多くて困っています。 どうかよろしくお願いします。 | ||||
|
投稿日時: 2003-12-25 16:39
自己レスです。
結局この件の解決方法は分かりませんでしたが、 お客様の仕様を多少変更して違う形で作成しました。 DataGrid画面にスクロールバーを付けたいがために B.apsxに表示していました。 そのDataGridをA.aspxのパネルの上に置いて、 パネルをスクロール可能に設定することにより対処しました。 閲覧してくれた方々、ありがとうございました。 | ||||
|
投稿日時: 2003-12-26 09:15
まだ見ていらっしゃるかわからないですが、とりあえず。
キャッシュがあるからじゃないかなと思うんですが、いかがでしょうか? | ||||
|
投稿日時: 2003-12-26 09:51
「ページを表示するごとに確認する」にすれば毎回見に行くようになりますね。 | ||||
|
投稿日時: 2003-12-26 13:13
HTMLに <%@ OutputCache Duration="1" VaryByParam="none" %> と記述してみてください。 キャッシュを見なくなるはずです。 | ||||
|
投稿日時: 2003-12-26 18:16
fizzyさん、べるさん、ありがとうございます。
HTMLに <%@ OutputCache Duration="1" VaryByParam="none" %> を入れて試したところ、毎回Page_Loadが処理されるようになりました。 ただ、今回の作業ではパネルにDataGridを貼り付けて行うほうが スムーズに出来るので、そちらの方法で行わせていただきました。 おかげさまで悩んでいたこともすっきりしたので良い年末をすごせそうです。 ASP.NETは色々なことが出来て楽しいですね。悩むことも多いですけど・・ 大変ありがとうございました。それでは失礼します。 | ||||
|
投稿日時: 2003-12-26 19:18
勉強になります。HTTPヘッダをいじってくれるのですね。 コード上では Response.Cache.SetCacheability(HttpCacheability.NoCache); で、同じことができるようですね。 |
1