ASP.NET Web Forms - 事件

事件句柄是一种针对给定事件来执行代码的子例程。

ASP.NET - 事件句柄

请看下面的代码:

<%  
lbl1.Text="The date and time is " & now()  
%>  

<html>  
<body>  
<form runat="server">  
<h3><asp:label id="lbl1" runat="server" /></h3>  
</form>  
</body>  
</html>

上面的代码将在何时被执行?答案是:"不知道..."。

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,则页面被传回到服务器(比如,通过点击表单上的按钮):

实例

<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 中的日期和时间不会改变。