决定事件的因素

时间:2016-03-04 20:54:58

标签: c# asp.net

我只是一个初学者,所以,我的问题可能听起来有点愚蠢或基本。
我在asp.net学习编程,因此我看到很多事件都被事件激活了。然而,我没有在代码中找到任何内容,也没有找到定义哪个事件激活函数的类型签名。
那么,在像public void Page_Load (object sender, EventArgs e)这样的函数中,哪些代码行确定哪个事件会使函数启动?它与功能的名称有什么关系吗?
谢谢:))

2 个答案:

答案 0 :(得分:3)

Page_Load等函数由ASP.NET以特定顺序调用。您无法配置首先触发的内容。我们的想法是,您可以按照所需的特定顺序覆盖所需的代码。

以下是MSDN Page Lifecycle信息,其中介绍了可以覆盖的事件以及它们的顺序。

答案 1 :(得分:2)

在ASP.Net 1.1中,我们曾经在文件后面的每个代码中都有以下系统生成的代码。

public class Default : System.Web.UI.Page 
{
   // ----- System generated code
   protected System.Web.UI.WebControls.TextBox Name;
   protected System.Web.UI.WebControls.TextBox Email;

   public Default() 
   {
         Page.Init += new System.EventHandler(Page_Init);
   }
   // ----- System generated code

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

   }
} 

它基本上将方法注册到页面事件。它们只不过是让文件后面的代码变脏了。

从ASP.Net 2开始,他们将系统生成的代码移动到设计器文件中,文件后面的代码变得干净易读。

public class Default : System.Web.UI.Page 
{           
   protected void Page_Load(object sender, System.EventArgs e) 
   {     
   }
   -- OR --
   protected override void OnLoad(EventArgs e) 
   {
      base.OnLoad(e);
   }
}
  

哪些代码行决定了哪个事件将成为   功能开始?

ASP.Net使用转换优于配置方法来注册事件。这意味着,您可以使用以下事件名称命名受保护的方法,并且该页面将知道如何附加这些事件。例如, Page_Init Page_Load Page_PreRender

此外,您可以根据需要显式覆盖这些事件。

https://msdn.microsoft.com/en-us/library/ms178472.aspx

enter image description here