Dav*_*key 7 .net asp.net session session-variables session-state
我在代码的一个时刻设置了一个会话对象:
Session("my_name") = "Dave"
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,我给用户一个更新此对象的机会:
Session("my_name") = TextBox1.Text
Run Code Online (Sandbox Code Playgroud)
我重新加载我的页面并显示一个像这样的小问候:
Label1.Text = "Hello" & CStr(Session("my_name"))
Run Code Online (Sandbox Code Playgroud)
结果是:"Hello Dave"无论我改变Session("my_name")也是如此.
编辑:这是我写的一个完整的代码隐藏演示:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1)
If Page.IsPostBack = False Then
Session("my_name") = "Dave"
End If
Label1.Text = CStr(Session("my_name"))
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Session("my_name") = TextBox1.Text
End Sub
Run Code Online (Sandbox Code Playgroud)
结束班
该Page的Load事件激发了快比Buttonclick事件.因此,在它运行时,值Session("my_name")仍为"Dave".
如果您想正确设置它,您应该将其Label1.Text = CStr(Session("my_name"))放入PreRender页面的事件处理程序中.
你砍放入Button的Click事件,以及(设置课程的会话值,之后),但我想,你以后要使用的会话存储对象为没有价值的目的.
(我想你以后想把这个会话用于更高级的目的.毕竟,如果你只想更改标签的文本,那么使用会话会有什么意义?)
基本上,这就是你想要的:
以下是您当前代码所发生的情况:
您可以在此处阅读有关该主题的更多信息:ASP.NET页面生命周期概述.
| 归档时间: |
|
| 查看次数: |
6292 次 |
| 最近记录: |