AutoEventWireup=“true” 属性

AutoEventWireup=“true” 属性AutoEventWireupAutoEventWireup=“true” :自动事件匹配asp.net(AutoEventWireup属性的确切含义)使用Asp.NET时,新建的aspx页面第一行page指令中包含了一个AutoEventWireup属性。网上的很多教程认为这一属性,甚至这一行代码都是没用的。其实,这是不了解Asp.NET事件处理模型的表现。简单

大家好,又见面了,我是你们的朋友全栈君。

 

AutoEventWireup

AutoEventWireup=“true”  :自动事件匹配

asp.net(AutoEventWireup属性的确切含义)

使用Asp.NET时,新建的aspx页面第一行page指令中包含了一个AutoEventWireup属性。网上的很多教程认为这一属性,甚至这一行代码都是没用的。其实,这是不了解Asp.NET事件处理模型的表现。简单来说,这一属性决定了当前页是否自动关联某些特殊事件。

     首先,从浏览器页面触发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,Asp.NET建立了委托(代理)机制。在建立一个事件的同时,建立相应的委托:

private void InitializeComponent()
   {    
    this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
   }

private void Button1_Click(object sender, System.EventArgs e)
   {

    //事件内容
   }

     委托将事件与该页面显式关联。在AutoEventWireup=”false”时,如果没有委托,事件将不执行。

     这与早期VB采用的隐式事件挂起截然不同,各有利弊。但,Asp.NET中可以修改AutoEventWireup=”true”,使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。比如:

private void Page_Load(object sender, System.EventArgs e)
   {

    // 事件内容
   }

     针对这些事件方法,开发人员可以利用该参数避免编写过多的链接代码。如果该属性设置为”false”,则代码应改为:

private void InitializeComponent()
   {    
    this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
    this.Load += new System.EventHandler(this.Page_Load);//可以用AutoEventWireup属性避免的委托
   }

private void Page_Load(object sender, System.EventArgs e)
   {

    // 事件内容
   }

private void Button1_Click(object sender, System.EventArgs e)
   {

    //事件内容
   }

     一定不可以在没有委托的情况下使用Page_Load类似的方法!

     大部分情况下,页面不需要关联如此多的特殊事件,会增加额外的操作和系统开销。同时, ASP.NET 页框架自动调用事件处理的方法基于其预定名称,这会导致到相同事件处理方法当页运行被调用两次,也会增大系统开销。因此,Microsoft 建议始终将 AutoEventWireup 设置为 FALSE。

@ Page指令的说明:
http://msdn2.microsoft.com/en-us/library/ydy4x04a(vs.71).aspx
ASP.NET 服务器控件事件模型
http://msdn2.microsoft.com/en-us/library/59t350k3(vs.71).aspx

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能

    使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能

    2021年5月18日
    357
  • javaweb-爬虫-1-62

    javaweb-爬虫-1-62

    2021年5月18日
    128
  • 微信公众号平台图片上传失败不知道是哪张_看公众号的同时回微信

    微信公众号平台图片上传失败不知道是哪张_看公众号的同时回微信获取图片链接:http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}如今会提示错误{&qu

    2022年8月4日
    3
  • 泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]

    泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]泰国最大的蜂窝网络AIS已使数据库脱机,疑遭黑客攻击,这使达80亿实时互联网记录泄漏到数百万泰国互联网用户上,该事件震惊整个泰国。全球著名白帽黑客、东方联盟创始人郭盛华博客文章中说,他在互联网上没有密码就找到了包含DNS查询和Netflow数据的数据库。通过访问该数据库,任何人都可以“快速描绘”互联网用户(或其家庭)的实时行为。他表示:“在数据库中找到的记录只能来自能够监视Internet流量在网络上流动的人。但是,没有一种简单的方法可以区分数据库是属于Internet提供商还…

    2022年9月15日
    0
  • 基因突变基本知识「建议收藏」

    基因突变基本知识「建议收藏」基因、染色体、蛋白质、DNA,RNA之间的关系是什么?赛福基因公开课今天正式开讲。第一课我们来对基因检测进行基本的介绍。今天我主要从以下两个方面介绍一下基因检测的基础知识,一是基因,包括细胞、染

    2022年8月4日
    4
  • 软件工程需求分析实验_实验设备管理系统需求分析

    软件工程需求分析实验_实验设备管理系统需求分析一、系统的问题描述1.系统简介每学年要对实验室设备使用情况进行统计、更新。其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。(4)随时对现有设备及其

    2022年10月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号