有关变量问题,谁能解释一下这种现象?
代码如下:
private string ab1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid1();
}
}
public void BindGrid1()
{
ab1="123";
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Label1.Text =ab1;
}
===========================
以上代码Label1.Text的值取得不到是123
如果去掉if (!IsPostBack){} 这个,就可以取得正确的值,
不知如何解释?
------解决方案--------------------if(!IsPostBack)
里的代码只在页面加载时运行
------解决方案--------------------因为第一次,会进入BindGrid1,有值没问题,点击后,因为是服务端控件会引起页面刷新,但是因为load事件中有if判断,所以第二次不会执行BindGrid1,又因为页面刷新,会重置变量,所以ab1=“”
------解决方案-------------------- BindGrid1();这个确认执行了??
------解决方案--------------------服务器控件的事件均会引发导致页面重新加载
IsPostBack是在第一次加载才会执行的,而由页面其他控件导致的页面回发使得IsPostBack为ture,便不会执行赋值操作
------解决方案--------------------回发后没有进入到if(!IsPostBack)里
abc值为初始值。
------解决方案--------------------点击按钮刷新页面之后,因为if(!IsPostBack),abc没有赋值,abc在刷新页面时重置为""
------解决方案--------------------