C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 75 を表示中)
■43770 / )  VB.NET 画面表示しているコントロールが更新されません
□投稿者/ おじゃ (1回)-(2009/11/18(Wed) 14:00:52)

分類:[.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よりデータを取得してラベルの値を変更する。
 (初回行った、画面表示取得関数は実行しない。)



返信 編集キー/


管理者用

- Child Tree -