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" %>