Page_Load里的Label1.Text = Session["aaa"].ToString();好像没执行,必须再回传一次才能显示出来,咋回事?
代码很简单.用TextBox1设置Session , 当Page_Load的时候就显示出来
protected void Page_Load(object sender, EventArgs e)
{
if (Session[ "aaa "]!=null)
Label1.Text = Session[ "aaa "].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session[ "aaa "] = TextBox1.Text;
}
当我在TextBox1 里写个 "人咬狗 " 然后点击Button1 以后,页面刷新,但是Label1里的值没变.必须我再点一次Button1 Label1才正确显示出 "人咬狗 "
完了我又做个试验.我又添加了一个Button2. Button2的Click 里什么都不做.
我在TextBox1 里写个 "人咬狗 " 然后点击Button1 以后,页面刷新,Label1里的值没变.然后我再点一次Button2 Label1也正确显示出 "人咬狗 ". 就好像必须给Session赋值以后再PostBack一次才能显示
[解决办法]
这个理由很简单
因为你每次点击按钮的时候,页面都发生了一次回传,这个时候先发生的是Page_Load事件,然后才是你的Button1_Click事件,所以你点了按钮后Session的值虽然已经发生了改变,但标签的值不会马上变(因为Page_Load在前,Button1_Click在后)