详细AutoEventWireup <@ Page language=c# AutoEventWireup=”false”和“True”>的研究

详细AutoEventWireup <@ Page language=c# AutoEventWireup=”false”和“True”>的研究@Page里面的属性是ASP.NET页面中最基础的组成部分。可也包涵了很多麻烦在里面,因为种种原因导致必须研究一下这个属性AutoEventWireupAutoEventWireup用我的理解方式是这样:(Auto解释是自动,Event解释是事件,Wire解释关联结构模式,up解释是在上面)个人理解的方式来推断这个属性所实现的功能。首先,从浏览器触发的事件不能理科在本地得

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

 @ Page 里面的属性是ASP.NET页面中最基础的组成部分。可也包涵了很多麻烦在里面,因为种种原因导致必须研究一下这个属性AutoEventWireup

AutoEventWireup 用我的理解方式是这样:(Auto解释是自动,Event解释是事件,Wire解释关联结构模式,up解释是在上面)

个人理解的方式来推断这个属性所实现的功能。

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

private void initializeComponent()

     {

      this.mybutton.Click+=new System.EventHandler(this.Button1.Click);  //委托

     }

private void Button1_Click(object sender,System.Eventargs e)

 {

  //事件内容

 }

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

   

 Autoeventwireup=”true”,使页面与某些特殊的事件绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定的名称包括:Page_Init,Page_Load,Page_DataBind,PagePreRender和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 指令的 AutoEventWireup 属性被设置为 true(或者如果缺少此属性,因为它默认为 true)

当AutoEventWireup为true时,html中服务端脚本才被执行,结果才会出来在页面!

反过来说,当AutoEventWireup为false时,却有它的好处,为什么? 当然就是因为我们常常用的后代码技术,如果当AutoEventWireup为true时,页面会执行两次,.net环境会执行一次来运行html中包含的服务器端脚本,另外一次来执行后代码中的各个函数。

例:写一个asp.net页面(包含服务端脚本)

<@ Page language=c# AutoEventWireup=”false” Inherits=”Chapter3.ch21″ %>
<html>
<script language=c# runat=server>
void Page_Load(object sender, EventArgs e)
{

lblMessage.Text=”<a href=’http://techmango.com’>Thinking in Techmango.com</a>”;
}
</script>
<body>
<form runat=server>
<asp:label id=lblMessage runat=server />
</form>
</body>
</html>

运行后结果什么都不显示,当然就是因为AutoEventWireup被设置成“false”。

此文章内容参考了很多网上博客的文章;

感谢博客园id:钱途无梁

感谢doc88作者:fuqifalilu

感谢搜狐博客ID:累了的候鸟


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

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

(0)
上一篇 2022年5月27日 下午9:20
下一篇 2022年5月27日 下午9:20


相关推荐

  • mysql timestampdiff>_MySQL TIMESTAMPDIFF()用法及代码示例

    mysql timestampdiff>_MySQL TIMESTAMPDIFF()用法及代码示例TIMESTAMPDIFF():MySQL中的此函数用于从另一个函数中减去DateTime表达式后返回一个值。用法:TIMESTAMPDIFF(unit,expr1,expr2)Parameters:它将接受三个参数。单位-它表示结果的单位。可以是以下之一。微秒,秒,分钟,小时,天,周,月,季度,年expr1-第一个日期或DateTime表达式。expr2-第二个日期或DateTime表达式。返回…

    2022年6月5日
    39
  • Atom装逼神器activate-power-mode插件安装教程「建议收藏」

    Atom装逼神器activate-power-mode插件安装教程「建议收藏」关于Atom    Atom是github专门为程序员推出的一个跨平台文本编辑器。具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言。它支持宏,自动完成分屏功能,集成了文件管理器。安装 activate-power-mode插件1、安装Atom下载Atom:https://download.csdn.net/download/he…

    2022年7月14日
    23
  • source insight3.5激活码_sourceinsight激活成功教程版安装教程

    source insight3.5激活码_sourceinsight激活成功教程版安装教程注册码是SI3US-361500-17409

    2022年10月3日
    5
  • RBF神经网络简单介绍与MATLAB实现

    RBF神经网络简单介绍与MATLAB实现RBF 的直观介绍 RBF 是一种两层的网络 RBF 的隐层是一种非线性的映射 RBF 输出层是线性的 RBF 的基本思想是将数据转化到高维空间使其在高维空间线性可分 RBF 学习算法 LazyRBFMATLA 实现 RBF 神经网络 RBF 的直观介绍 RBF 具体原理 网络上很多文章一定讲得比我好 所以我也不费口舌了 这里只说一说对 RBF 网络的一些直观的认识 1RBF 是一种两层的网络是的 RBF 结构上并不复杂 只

    2026年3月26日
    2
  • hive 数据类型_sv数据类型

    hive 数据类型_sv数据类型本篇来学习一下Hive中的数据类型,以及如何在HiveSQL中去处理这些数据类型。Hive的数据类型可以分为基本类型、字符串类型、日期与时间戳类型、集合类型,我们分别进行介绍:1、基…

    2026年2月6日
    8
  • 金蝶显示服务器异常,金蝶迷你版登录提示云服务器异常

    金蝶迷你版登录提示云服务器异常内容精选换一换如果您购买了ECS,而没有对ECS进行主机安全防护,那么您主机将面临账户爆破、异常登录、恶意攻击等安全威胁。购买ECS,勾选开通主机安全,HSS基础版(按需计费)免费赠送。HSS可以帮助您全面识别并管理主机中的信息资产,实时监测主机中的风险并阻止非法入侵行为,帮助企业构建服务器安全体系,降低当前服务器面临的主要安全风险。基础版(按需计费)区块链管理页面…

    2022年4月9日
    89

发表回复

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

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