首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

有关变量有关问题,哪位高手能解释一上这种现象

2012-07-28 
有关变量问题,谁能解释一下这种现象?代码如下:private string ab1protected void Page_Load(object sende

有关变量问题,谁能解释一下这种现象?
代码如下:
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 的值是否变成""

热点排行