分享

ASP.NET 杂记

 昵称10504424 2013-03-06
页面生命周期 
页面生命周期:具体怎么调试可以参考之前我的随笔的:
页面事件绑定模型
页面中遇到的事件执行顺序如下:
在无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;

GetPost区别

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 onload="SetTimeOut('history.go(0);',5000)">
<body onload="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')

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多