|
分類:[.NET 全般]
以下、サンプルの Hoge の値が画面に表示されません。 どなたかご存知の方がいらっしゃいましたらご教授下さい。
以下のサンプルの説明です。
・初回アクセス時にLabel1に Firstという値を入れます。 ⇒初回時はFirstがラベルに表示される。
・セッション変数に格納したL1に、Hogeという値を入れる。 ⇒Timer処理では、ラベルの値が変わりません。
Partial Public Class _Default Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then '初回アクセス時のみ実行
Label1.Text = "first" Session("Label1") = Label1
Timer1.Interval = 1000 Timer1.Enabled = True
End If
End Sub
Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
Dim L1 = Session("Label1") L1.Text = "hoge"
UpdatePanel1.Update()
Timer1.Enabled = True
End Sub
End Class
★ちなみに、以下の対応をするとHogeに代わります。
・ L1.Text = "hoge" の所を、 Label1.Text = "hoge" にする。 ・If Not IsPostBack Thenの所をなくす。
Session変数で保持しているコントロールと画面表示のコントロールは別物のようです。 何か同期とらせる事はできないでしょうか?
★実際の処理で、何がしたいか説明します。
・初回表示時に画面に表示しているコントロールを全て取得する。 取得したコントロール名をSessionに入れる。 ・次の処理では、DBよりデータを取得してラベルの値を変更する。 (初回行った、画面表示取得関数は実行しない。)
|