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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 接口测试题目_jmeter接口自动化测试框架

    接口测试题目_jmeter接口自动化测试框架http接口工具有很多如:postman、jmeter、soupUI、Java+httpclient、robotframework+httplibrary、Fidder+postman等1、什么是接口接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准接口的种类和分类:webservice和httpapi接口1)webservice接口是走soap协议通过htt…

  • Apap图像配准算法[通俗易懂]

    Apap图像配准算法[通俗易懂]Apap图像配准算法

  • 如何生成lib文件_bin文件和mcs文件

    如何生成lib文件_bin文件和mcs文件看到一篇文章可以添加crc文章链接:http://blog.csdn.net/Simon223/article/details/105724950感觉应该可以可以添加一些自己的其他信息。先做个标记吧,后面再来学keil官网的摘抄信息:https://www.keil.com/support/docs/3806.htmµVISION:CRCExampleInformationinthisknowledgebasearticleappliesto:MDK-ARM5.00o

    2022年10月20日
  • python提取时间段日期_timestamp时间戳

    python提取时间段日期_timestamp时间戳在python开发web程序时,需要调用第三方的相关接口,在调用时,需要对请求进行签名。需要用到unix时间戳。在python里,在网上介绍的很多方法,得到的时间戳是10位。而java里默认是13位(milliseconds,毫秒级的)。下面介绍python获得时间戳的方法:1、10时间戳获取方法:>>>importtime>>>t=time.tim…

  • APK签名流程详解

    APK签名流程详解本文最好对照我的APK签名解析示例进行阅读.示例中的关键文件说明:keys-存放签名公私钥的目录signed_logcat.apk-已经使用keys目录中的密钥签名后的apksigned_logcat-signed_logcat.apk解压出来的内容sign.cmd-对apk签名的批处理命令signapk.jar-java版本的apk签名工具

  • scrollIntoView 与 scrollIntoViewIfNeeded API 介绍

    scrollIntoView 与 scrollIntoViewIfNeeded API 介绍本文转自:scrollIntoView与scrollIntoViewIfNeededAPI介绍根据MDN的描述,Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内。而Element.scrollIntoViewIfNeeded()方法也是用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。但如果该元素已经在浏览器窗口的可见区域…

发表回复

您的电子邮箱地址不会被公开。

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