2012-03-13 6 views
0

私はそれがに戻っているとき、それはコントロールあなたがそれに戻ったときと同じ状態になりますVB.NETでフォームを書く

私のために同じ状態を持っていることのフォームを作成しようとしています3つの.netページ、testa、testb、testcを持っています

testa、セッションをセットアップし、testbに行くボタンがあります。 testbにはtestcに行くためのチェックボックスとボタンがあります。 testcにはtestbに戻るボタンがあります。

私はそれが欲しいので、私たちはtestcを残して、チェックマークが同じ状態になるが戻って来るが、それはありません。ページtestcからページtestbに戻るときにチェックを外したままにします

これは私が行ったことです ページロードイベントでは、 "button"セッション変数と同じチェックボックスを設定します。ボタンイベントに私はボタンは、セッション変数と呼び出しページで状態を確認し、保存TESTC

コード

ページ

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click 
    Server.Transfer("testb.aspx") 
End Sub 

ページB

Partial Class testb 
    Inherits System.Web.UI.Page 

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
     Dim t As Boolean 
     t = Session.Item("button") 
     CheckBox1.Checked = t 
    End Sub 

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click 
     Dim t As Boolean 

     t = CheckBox1.Checked 
     Session.Item("button") = t 

     Server.Transfer("testc.aspx") 
    End Sub 
End Class 

ページCセッションで

Partial Class testc 
    Inherits System.Web.UI.Page 

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click 
     Server.Transfer("testb.aspx") 
    End Sub 
End Class 
+0

[Wizard](http://msdn.microsoft.com/en-us/library/fs0za4w6.aspx)コントロールを使用すると、達成しようとしていることが簡単になるかもしれません。 – Filburt

答えて

0

データはObjectとして記憶されます。あなたがする必要があるのは、セッションから値を取得し、それがnull(VBではNothing)でない場合はBooleanに変換することです。我々は前にこの技術を使用しました:

Dim rawValue As Object = Session.Item("button") 
Dim realValue as Boolean 

If rawValue IsNot Nothing Then 
    realValue = Boolean.Parse(rawValue.ToString()) 
End If 
+0

こんにちは、私の欲求に感謝していただきありがとうございます、私は問題を解決することができた問題は、ボタンイベントの前にpageloadイベントが呼び出され、古い値がロードされる前に、私はonloadのprerenderイベントinstadを使用し、うんざり! –

+0

@Ted - 聞いてよかったです。ソリューションで自分の回答を投稿することを検討する必要があります。 – TLS

0

あなたが値をロードするかどうかを決定するPage_Load方法でIsPostBackプロパティをチェックする必要があるようですね。それがポストバックのときは、セッションからロードしないでください。

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     Dim t As Boolean = Session.Item("button") 
     CheckBox1.Checked = t 
    End If 
End Sub 
関連する問題