事件--[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>

  

原文地址:https://www.cnblogs.com/wangmei/p/4485224.html