?每个页面的生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间. 也就是说,每次都会重建类对象,成员变量当然会初始化。但static的就会被共享。或存入于 ViewState中
1,!IsPostBack 用于第一个生命周期创建时。
2,Page_Load事件会在每次返回到服务器时执行,无论是点击按纽还是其它。故Page_Load主要用于各个控件通用的操作。
由上知:在每次刷新时,页面的状态会被保存,而对应类的非static成员则每次都将被初始化,故在IsPostBack中进行页面控件状态的设置如:btn1.visible =false;
而在之后根据条件做变量的设置。
if( !IsPostBack ){
??? //页面状态设置
???? txtOrderDate_begin.Text = DateTime.Now.ToString(“yyyy-MM-dd”);
???? txtOrderDate_end.Enabled = false;
}
//每次刷新,进行变量设置, 若是从数据库中取值,放到viewstatue,免得每次刷新都要操作数据库
if ( ViewState[“isReviewer”] !=null ){
??? isReviewer = stringhelper.formatobjtobool(ViewState[“isReviewer”]);
}else{
? if (_userBL.GetRoleByAccount(user.Account) == DataBaseConstant.ROLE_REVIEWER)
??????????????? {
??????????????????? isReviewer = true;
?? ??? ??? ??? ???? ViewState[“isReviewer”] = isReviewer;
??????????????? }
}