<script language="c#" runat="server">
int intGlobal = 0;
void Page_Init()
{
intGlobal++;
message1.Text += "<br/>Page_Init()被调用,intGlobal的值为" + intGlobal;
}
void Page_Load(object sender, EventArgs e)
{
intGlobal++;
message2.Text += "<br/>Page_Load()被调用,intGlobal的值为" + intGlobal;
}
</script>
<head id="Head1" runat="server">
<title>测试网页</title>
</head>
<body>
<form id="form1" runat="server">
<input type="submit" value="提交" />
<br />
<asp:Label ID="message1" runat="server" />
<br />
<asp:Label ID="message2" runat="server" /></div>
</form>
</body>
</html>
第一次运行将会看到
Page_Init()被调用,intGlobal的值为1
Page_Load()被调用,intGlobal的值为2
单击提交,将会看到
Page_Init()被调用,intGlobal的值为1
Page_Load()被调用,intGlobal的值为2
Page_Load()被调用,intGlobal的值为2
如果单击提交几次,将会看到intGlobal的值始终为2,而没有递增。因为页面是不能保留变量的,每次都是重新声明、使用新变量。而加载页面的顺序为Page_Init(),然后Page_Load(),所以刚打开时显示为1、2。而以后在提交过程中,虽然Page_Init()还是会被调用,但不能改变服务器控件的文本了,所以值虽然递增了,但message1的文本却没有显示。如果删除Page_Init()中的intGlobal++,则可以证明以上观点。因为那时intGlobal的值将始终为1。
(C#)ASP.Net之Load、Init事件
最新推荐文章于 2024-12-30 15:23:54 发布