ASP.NET页面生命周期
有很多理由去解释理解ASP.NET页面生命周期是非常重要的,主要是要去理解什么地方放置什么特定的方法,什么时候我们应该设置什么相关的属性。如果去开发自定义的服务器控件,理解生命周期对纠正控件初始化时候的错误,以及使用view-state和后台代码设置属性是非常有用的。(控件事件只与ASP.NET页面相关)
页面生命周期要看它是否是第一次请求,还是回发(本身页面请求),最后决定是否到Web服务器。当一个网页被Web服务器请求时,在回发到web浏览器之前,会经过一系列步骤/事件(如初始化,控件实例化,state的恢复和保存,执行事件处理代码,渲染)。
如果我们正确地使用和操作页面生命周期事件,它对web应用程序开发会是一个非常方便和强大的工具。
IIS : 它是Microsoft .NET默认的web服务器。IIS帮助你发布web sites和web application。当IIS Web服务器接受一个Web资源(文件)的请求,它检查文件的扩展名(例如:.aspx, ascx, .ashx 和.asmx),然后决定使用哪个 ISAPI 扩展来处理这个请求,然后传递这个请求给正确的 ISAPI扩展。
ASPNET_ISAPI.DLL: IIS加载这个dll,然后将页面请求发送给这个dll。这个dll为进一步处理而加载HTTPRuntime 。
ASPNET_WP.EXE:它包含了应用程序池。每个应用程序池可以包含任意数量的应用程序。应用程序池也称为应用程序域。当一个网页被请求时,查找IIS的当前的应用程序正在运行的应用程序池,并且将请求转发到各自的工作进程。
通常浏览器每次发送请求的时候,页面的生命周期每次都会执行一遍,页面的实例被创建、HTTP 运行时调用ProcessRequest 、然后执行起始页。
下面的表格显示了每个阶段和相应的事件:
阶段 事件/方法
页面初始化 Page_Init
加载View State
相关文档:
asp.net 密码回传后,不见 的解决办法
<asp:UpdatePanel ID="UpdatePanel5" runat="server">
& ......
对“添加”、“提交”、“保存”、“更新”等按钮需要对数据库进行写操作的按钮,一定要在页面初始化时加载脚本,防止多次重复点击,例如:
protected void Page_Load(object sender, EventArgs e)
{
//.net 2.0以上
......
上次我们说到的编译成的dll文件与cs文件在同一目录中,而不会放到虚拟目录的bin目录中,如何做才能够把cs
文件编译成dll且自动放到虚拟目录的bin文件夹中呢?
开始-------程序-------Microsoft Visual Studio.NET 2003-------Visual Studio.NET工具,点击其中的“Visual Studio.NET2003命令提示”,就会进入Mic ......
一、(单值绑定)在页面的后台代码中定义公有变量,如下:
public string gongYou = "声明的公有成员";
①然后在页面的源中调用,如下:
<asp:Label ID="lblMgs" runat="server" Text="<%#gongYou >"></asp:Label>
②当然最后要记得绑定数据:
protected void Page_Load(object ......
代码很简单的,我把我平时写过的贴出来给大家看看:
if (bResult == true) //登录的用户名和密码正确
{
//保存登录的用户名
Session["LoginUser"] = FormatString.Replace(txtLoginUser.Text); //这里就是给session赋值了 ......