起因:今天就由于一个很简单的RadioButton控件,我怎么调试,无论那个checked了,结果都执行
if (rdoWork0.Checked == true)
{
Status = 0;
} 这句话,但是很纳闷,结果原来他一直执行我的showinfo(ID)这个方法,这里面有这样一个语句
private void ShowInfo(int ID)
{
if (model.WorkStatus == 0)
{
this.rdoWork0.Checked = true;
}
else
{
this.rdoWork1.Checked = true;
}
}所以我即使点击了rdoWork1这个rediobutton,if (rdoWork0.Checked == true)也是执行的。
if (!this.IsPostBack)使用:
if (!this.IsPostBack)
获取一个值,该值是否正被首次加载和访问。
if(!this.IsPostBack)
{
// code
}
通常用在page_load中,获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,如果是,则为true;否则为 false。
如果我们需要某些代码只需要执行一次,最好的选择当然是放在
if(!this.IsPostBack)
{
} 里面.
如果我们不写
if(!this.IsPostBack)
{
}
那么,无论是post,还是get请求,都会在执行以下page_load里面的内容。
总之:首次加载和访问if (!this.IsPostBack),这里面的内容是执行的,再次加载和访问将不再执行。