领悟@Page指令中的AutoEventWireup

领悟@Page指令中的AutoEventWireupAsp.NET中可以修改AutoEventWireup=”true”,使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init,Page_Load,Page_DataBind,Page_PreRender和Page_Unload等。.aspx设置AutoEventWireup=false情况下,Pag…

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

  Asp.NET中可以修改AutoEventWireup=”true”,使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。

 

 

.aspx设置AutoEventWireup=false情况下,Page_Load方法没有办法成为Load事件的订阅者,

我们必须手工进行相应的subscribe,不然我们就看不到输出的hello.

 

<%@ Page Language=”C#” AutoEventWireup=”false” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>

 

public partial class _Default : System.Web.UI.Page

{

    protected override void OnInit(EventArgs e)

    {

        base.OnInit(e);

        this.Load += this.Page_Load;

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Write(“hello”);

    }

}

 

 

从这个简单例子,可以看出AutoEventWireup=true时候像Page_xx都成为了保留方法了。

 

一、Page指令中的AutoEventWireup=”true”,该指令默认值为true.

     指示
页的事件
是否自动绑定。如果启用了事件自动绑定,则为
true;否则为
false。默认值为
true

    
页的事件的绑定

     ASP.NET 页会引发诸如 Init Load PreRender 等生命周期事件。默认情况下,可以使用 Page_事件名称的命名约定将页事件绑定到方法。例如,若要为页的 Load 事件创建处理程序,可以创建名为 Page_Load 的方法。编译时,ASP.NET 将查找基于此命名约定的方法,并自动执行事件与方法之间的绑定。可以对 Page 类公开的任何事件使用 Page_事件名称的约定。
     AutoEventWireup 属性的缺点是它要求页事件处理程序具有特定的、可预测的名称。这就限制了在命名事件处理程序方面的灵活性。

    注意:

   如果包括页事件的显式绑定,请确保将 AutoEventWireup 属性设置为 false,以便方法不会意外地被调用两次。


     
页事件的显式绑定:

      
(
AutoEventWireup 属性设置为 false时,将不会按命名约定去调用Page_Load方法,这时需要我们显示定)

    public partial class _Default : System.Web.UI.Page
    {

        

public
 _Default()
        {

            

this
.Load 
+=
 
new
 EventHandler(Page_Load);
        }
        

protected
 
void
 Page_Load(
object
 sender, EventArgs e)
        {

        }
    }

原文地址:http://www.cnblogs.com/ycdx2001/archive/2009/07/19/1526739.html

 

转载于:https://www.cnblogs.com/jhxk/articles/1632421.html

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

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

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


相关推荐

  • python merge函数_pandas replace函数

    python merge函数_pandas replace函数在pandas中如果我们想将两个表格按照某一主键合并,我们需要用到merge函数。pd.merge(dataframe_1,dataframe_2,how=”inner”)参数how有四个选项,分别是:inner、outer、left、right。inner是merge函数的默认参数,意思是将dataframe_1和dataframe_2两表中主键一致的行保留下来,然后合并列。outer是相对于inner来说的,outer不会仅仅保留主键一致的行,还会将不一致的部分填充Nan然后保留下来。

    2025年8月8日
    3
  • python encode和decode傻傻分不清楚「建议收藏」

    python encode和decode傻傻分不清楚「建议收藏」一、字符串和字节串的区别1、字符串:我们最常挂在嘴边的,”普通字符串“,是给人看的,在python中是str类型,str使用的是unicode编码,可通过encode()方法编码为字节串2、字节串:有时也叫“二进制字符串”,是给机器看的,在python中是bytes类型,bytes有编码格式,如utf-8(默认),gbk,可以通过decode()方法解码为字符串具体操作如下1、程序从文件或其他外部存储读取字节串内容,要将基解码为字符串,然后再内部使用2、程序完成处理,要把字符串写入文件

    2022年10月6日
    2
  • java生成时间戳类型_Java获取当前时间戳的方法有哪些

    java生成时间戳类型_Java获取当前时间戳的方法有哪些Java获取当前时间戳的方法有哪些时间:2017-08-22来源:华清远见JAVA学院时间戳就是一种类型,只是精度很高,比datetime要精确的多,通常用来防止数据出现脏读现象。那么Java中如何获得时间戳,Java获得当前时间戳的方法有哪些呢?Java获取当前时间戳的三种方法//方法一System.currentTimeMillis();//方法二Calendar.getInst…

    2022年6月3日
    68
  • java环境配置步骤_java环境变量配置步骤「建议收藏」

    java环境配置步骤_java环境变量配置步骤「建议收藏」java环境变量的配置步骤:右击—>“我的电脑”—>“属性”选择“高级”选项卡—>“环境变量”在“系统变量”或者“用户变量”中,点击“新建”设计以下三个变量(大小写无关):JAVA_HOME——–JDK安装路径(安装时所选择的路径例D:/jdk1.4).PATH————-识别java命令(%JAVA_HOME%/bi…

    2022年7月7日
    20
  • 苹果开发者账号申请流程_最新苹果开发者申请

    苹果开发者账号申请流程_最新苹果开发者申请苹果开发者帐号申请流程

    2022年4月21日
    44
  • 2022年最新前端面试题,持续更新「建议收藏」

    2022年最新前端面试题,持续更新「建议收藏」2022年最新前端面试题适合初/中级前端开发工程师

    2022年10月17日
    3

发表回复

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

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