ASP.NET的Page_Load事件

转载 2007年09月20日 14:49:00
Page_Load,即页面载入要执行的事件;
Page_Load的执行分为两种情况;
1.Page_Load事件的执行是在第一次加载页面时发生(即为了响应客户的请求);
2.Page_Load事件的执行是在把该页面回发到服务器时发生;
ASP.NET处理重新页面的时候都要重新执行Page_Load;
即重建Page类,而Page_Load是重建页面第一个要执行的事件;
所以无论何种情况都会执行Page_Load,这时就有必要判断一下服务器处理Page_Load事件时是在何种情况发生;
而Page.IsPostBack正好解决了这个问题;
当是第一种情况的时候(为了响应客户的请求)Page.IsPostBack返回false;
当是第二种情况的时候(把该页面回发到服务器给服务器处理时)Page.IsPostBack返回True;
所以正确应用好Page.IsPostBack能大大的提高应用程序的性能;

 
Page_Load事件
Page_Load事件是ASP .NET识别的许多事件中的一个。Page_Load事件在一个页面加载时被触发,而且ASP .NET将自动调用Page_Load子程序,并在内部运行这段代码:

<script runat="server">
Sub Page_Load
lbl1.Text="The date and time is " & now()
End Sub
</script>
<html>
<body>
<form runat="server">
<h3><asp:label id="lbl1" runat="server" /></h3>
</form>
</body>
</html>

注意:Page_Load事件不包含对象引用或是事件参数!

--------------------------------------------------------------------------------


Page.IsPostBack属性
Page_Load子程序在每次页面加载的时候都会运行。如果你只想在第一次加载此页面的时候执行Page_Load中的代码,你可以使用Page.IsPostBack属性。如果Page.IsPostBack属性为false,页面是第一次被加载,如果为true,则页面是被“投递”(post)回服务器的(例如从一个表单中的按钮点击):

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
lbl1.Text="The date and time is " & now()
end if
End Sub
Sub submit(s As Object, e As EventArgs)
lbl2.Text="Hello World!"
End Sub
</script>
<html>
<body>
<form runat="server">
<h3><asp:label id="lbl1" runat="server" /></h3>
<h3><asp:label id="lbl2" runat="server" /></h3>
<asp:button text="Submit" onclick="submit" runat="server" />
</form>
</body>
</html>

上面的例子中,只会在第一次加载此页面的时候写出“The date and time is....”的消息。当用户点击Submit按钮时,submit 子程序会对第二个label写出“Hello World!”,但是第一个label中的日期和时间则不会改变。
--------------------------------------------------------------------------------

 


每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true,那么当该控件的状态被改变后,也会使表单会发送回服务器。(AutoPostBack属性,它只有两个bool值,true/false。如果这个属性被设置成false,那么点击后就不会立刻将变化传给服务器处理,也就不会有该控件的SelectedIndexChanged事件。)   
    
     每次当表单被发送回服务器,就会被重新加载,启动Page_Load事件,执行Page_Load事件处理程序中的所有代码(注意,是每次都会执行!)。   
   很显然把网页的初始化代码放在这里是最合适不过。我们经常会希望在每次加载网页时执行一些代码,如一些控件的数据绑定。   
    
     当我们希望只有在网页第一次加载时执行另一些代码(基本上都是数据的默认绑定),甚至希望一些代码在除首次加载外的每次加载时执行。那么我们可以利用IsPostBack特性来完成这一功能。在网页第一次加载时,该属性的值是false。如果网页因回送而被重新加载,IsPostBack属性的值就会被设置为true。     
    
     在ASP.NET应用程序中,如果需要在页面第一次显示时执行一些初始化操作,必须判断IsPostBack属性!   
    
     在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。   
    
     一个B/S结构的页面每一次提交,它都会重新从头到尾执行一次。而C/S结构的程序就不会这样,这是和C/S结构的程序最大的区别!其实,得不到控件的数据,都是因为这个原因。

--------------------------------------------------------------------------------

 

this.IsPostBack表示是不是回发动作.所谓的回发就是在页面加载以后,在本页有提交服务器的动作.this.IsPostBack    ==    true    表示是回发.   
   通常使用this.IsPostBack    是不是第一次加载.
 

ASP.NET的Page_Load事件

Page_Load,即页面载入要执行的事件; Page_Load的执行分为两种情况; 1.Page_Load事件的执行是在第一次加载页面时发生(即为了响应客户的请求); 2.Page_Lo...

ASP.NET的Page_Load事件及相关转载

Page_Load,即页面载入要执行的事件;  Page_Load的执行分为两种情况;  1.Page_Load事件的执行是在第一次加载页面时发生(即为了响应客户的请求);  2.Page_...
  • hsicool
  • hsicool
  • 2012年04月19日 17:21
  • 11052

ASP.net 让窗口WEB打开后,弹出一个选择窗口供应选择,注意Page_Load顺序,JS产生的找不到对象的问题

ASP.net 让窗口WEB打开后,弹出一个选择窗口供应选择,注意Page_Load顺序,JS产生的找不到对象的问题, (其实出现这一问题是WEB前台还没有加载完成,就执行后台,当然找不对象了) ...

ASP.NET基础与入门:WebForm,事件驱动编程,Page类

注:因为这个暑假做了一个ASP.NET的项目(WebForms模式),暑假期间太忙没有来得及整理,现在统一梳理下知识(有些我认为可以跟HTML共通的就没记)推荐几个学习ASP.NET的网站:W3Sch...
  • Jurbo
  • Jurbo
  • 2016年08月29日 15:10
  • 4134

ASP.NET中的Page_Load函数理解——附带Page.IsPostBack的简单使用

ASP.NET中web应用程序中的aspx.cs文件中,存在一个protected void Page_Load(object sender, EventArgs e)这样的函数,这个函数顾名思义,便...

使用 jQuery 调用 ASP.NET AJAX Page Method

说到轻量级的客户端通信,我注意到大多数人喜欢使用 ASP.NET AJAX Page Method 多于 ASMX Web 服务。事实上,在我的文章《使用 jQuery 调用 ASMX Web 服...

Asp.Net Ajax系列(二) 局部页面呈现(Partial-Page Rendering)

====================================================== 注:本文源代码点此下载 =============================...

ASP.NET Application and Page Life Cycle

http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle Table of Cont...

Asp.net Web Api开发(第四篇)Help Page配置和扩展

为了方面APP开发人员,服务端的接口都应当提供详尽的API说明。但每次有修改,既要维护代码,又要维护文档,一旦开发进度紧张,很容易导致代码与文档不一致。 Web API有一个Help Page插件,可...

ASP.NET Page执行顺序

摘自  张毅☆.Net★Java软件联盟 using System; using System.Data; using System.Configuration; using System.W...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET的Page_Load事件
举报原因:
原因补充:

(最多只允许输入30个字)