读书人

有关变量有关问题哪位高手能解释一上

发布时间: 2012-07-28 12:25:13 作者: rapoo

有关变量问题,谁能解释一下这种现象?
代码如下:
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在刷新页面时重置为""
[解决办法]

探讨

如果这种情况呢?
if (!IsPostBack)
{
BindGrid1();
dax1();
}
private void dax1()
{
string sql = ab1;
}
如果执行了ImageButton1_Click操作后,string sql 的值是否变成""

读书人网 >asp.net

热点推荐