可能是一个比较初级的问题,拿出来跟各位请教一下:
我在一个页面中放置了一个literal控件,一个button。button的click事件中有如下代码
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["Test"]="你好";
}
在该页面的Page_Load函数中访问ViewState
protected void Page_Load(object sender, EventArgs e)
{
litetal1.Text += ViewState["Test"];
}
结果是,每次点击button后,页面完成一次postback,viewstate也会被记录,但页面并不会在第一次postback后马上发生变化,而是当刷新该页面或者再次点击buton,也就是再次postback后才能将上次的Viewstate体现出来。
如果一定要实现这样的目的:点击某个按钮,产生一个postback,并在当次postback就访问viewstate或session。那么有什么比较好的办法吗?
protected void Button1_Click(object sender, EventArgs e)
{
litetal1.Text += ViewState["Test"];
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["Test"]="你好";
}
}
Button1_Click是在Page_Load之后执行的。你上面的例子相当于是先 读了ViewState,然后再改ViewState。