页面中遇到的事件执行顺序如下:
在无Master页面 加入Master页面
PreInit
--------------------------------------------------》MasterPage_Init
Init
InitComplete
PreLoad
Load
--------------------------------------------------》MasterPage_Load
Button事件
LoadComplete
PreRender
--------------------------------------------------》MasterPage_PreRender
PreRenderComplete
SaveStateComplete
最常用的页面生命周期事件说明:
PreInit:一般是创建控件阶段,并不会初始化,所以在这里对属性赋值在后面可能会被重写,是不推荐的。
Init:对所有的控件进行初始化,这个阶段可以设置属性的值。
InitComplete:有Page页面促发,已完成所有的初始化工作。
PreLoad:为自身和所有控件加载试图状态,处理任何回发数据。
Load:调用Load方法,已递归的方式对每一个子控件执行相同操作。
Button事件:处理特定控件的事件
LoadComplete:加载完成后促发
PreRender:每一个控件都有这个事件,使用它对内容进行最后的更改。
SaveStateComplete:已保存所以控件的ViewState,将忽略此时的任何更改,但是可以读取试图的值
。。
另外,Init和Load都会在每一个控件上以递归方式发生,但是他们顺序刚好相反:
每一个控件的Init事件是在其容器之前发生。
每一个控件的Load事件是在其容器之后发生。
从这个原则看,Master算是Page的一个控件。
页面数据绑定<%#name%>
在使用<%#name%>绑定数据,必须调用DataBind()方法,例如:
HTML:<%#name%>
cs:
public string name="ddd";
Page_Load()
{
Page.DataBind();
}
更多内容请阅读之前我的随笔:页面数据绑定
ASP.NET页面传值
1、get和post
get传值是在url中体现的“www.cnblogs.com?key1=value1”
使用Request.QueryString["key1"]取值
post传值是在http请求head中体现的“www.cnblogs.com”
使用Request.Form["key1"]取值
一般是在from表单提交的时候,浏览器自己把请求的值封装在head里面
2、session和Application
保存和获取都是:Session["key"]、Application["key"]
3、页面静态变量
在页面类里面定义静态变量:public Static string name="";
获取:Page1.name;
Get和Post区别
get一般是从服务器获取值,post一般是提交数据给服务器
get参数是放在url中传输的,post是通过http post机制,将数据放在html的head内,一起传输到url。
get,使用Request.QueryString["key1"]取值,post使用Request.Form["key1"]取值
两者可以使用Request["key1"]通吃,但是并不推荐。
相对而言,post会安全一点。
Server.Transfer和Response.Redirect 区别
Server.Transfer:把处理控制权从一个页面转移到另一个页面,在这个过程中没有离开服务器,
前一个页面的数据不会丢失。
Response.Redirect:发送一个http响应给客户端浏览器,浏览器重新发送http请求,前一个页面信息丢失。
刷新页面
1、自动刷新页面:
在head中加:<meta http-equiv="refresh" content="5"> 每隔5秒刷新一次页面
2、自动跳转:<meta http-equiv="refresh" content="5;url=http://www.cnblogs.com">
3、SetTimeOut实现:
<body οnlοad="SetTimeOut('history.go(0);',5000)">
<body οnlοad="SetTimeOut('this.location.reload();',5000)">
也可以使用JavaScript:
<Script>
function change()
{
document.location="www.cnblogs.com";
}
SetTimeOut(change,5000);//定时执行
</Script>
4、刷新的方式:
history.go(0)
location.reload()
location=location
location.assign(location)
document.execCommand('refresh')