事件--[Asp.Net]
Asp.Net的事件:
page_load和page_Init,两者结果不同,page_load,每次刷新都要实例化一次页面,要重新加载,造成下拉框中的加载内容再次被全部加载,出现重复的现象。如果想要避免这样的现象,需要page_load里面加一个条件:if(!Ispostback),如果返回一个值,就重新加载,如果不返回就不用加载了,感觉有点小类似单例模式。
page_Init,每次属性不会重新实例化。
Demo实例:
页面内部查看代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace demo5
{
public partial class shijian : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//页面被读入内存,进行处理时会引发该事件,使用这个事件要切记,每次刷新页面,.NET都会重新绘制一个页面,并且按照新页面来处理,每次加载都要触发这个事件
if (!IsPostBack)
{
DropDownList1.Items.Add("aaaaaa");
DropDownList1.Items.Add("bbbbbb");
}
}
protected void Page_Init(object sender, EventArgs e)
{
//页面初始化运行,例如可以在加载控件之前监测客户端环境变量。与load类似,但是网页重新在加载的时候不会再触发这个事件
//DropDownList1.Items.Add("aaaaaa");
//DropDownList1.Items.Add("bbbbbb");
}
protected void Button1_Click(object sender, EventArgs e)
{
DropDownList1.Items.Add(TextBox1.Text);
}
}
}
前台页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="shijian.aspx.cs" Inherits="demo5.shijian" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>

浙公网安备 33010602011771号