首页 > 代码库 > 1.<%@Page%>中的Codebehind、AutoEventWireup、Inherits有何作用?
1.<%@Page%>中的Codebehind、AutoEventWireup、Inherits有何作用?
AutoEventWireup --- 指示是否自动启用页事件。 Codebehind --- 指示后台代码文件。 Inherits --- 继承类。
AutoEventWireup:指示该页的事件是否为自动连网的。如果启用事件自动连网,则为 true;否则,为 false。 Inherits:定义供页继承的代码隐藏类。可以是从 Page 类派生的任何类。 Codebehind:代码绑定文件的名称。
Page language="c#" :指定为c#语言;
Codebehind 属性并不是一个真正的 ASP.NET 属性,在ASP.NET 文档中是找不到它的。
它其实只是一个 Visual Studio .NET 属性,
Visual Studio .NET 就是借用这个属性来很好地跟踪管理项目中的 Web 窗体和与之相对的代码隐藏文件,
比如当你在设计环境中往 Web 窗体上放入一个服务器控件时,
Visual Studio .NET 将自动找到与该 Web 窗体相对应的代码隐藏文件,并自动插入相关的代码。
AutoEventWireup:是否自动绑定页面处理事件,false表示不自动绑定;
Inherits 属性用于定义当前 Web 窗体所继承的代码隐藏类(该类是 System.Web.UI.Page 的派生类)。
这个 inherits 属性只用于采用代码隐藏方式编写的 Web 窗体,也就是,如果你的代码全都是在 Web 窗体的
<script runat="server"></script> 标签中,就不必用这个属性了。
Codebehind="PreDeliver.aspx.cs" 表示该页的后置代码在当前目录下的PreDeliver.aspx.cs文件中; AutoEventWireup="false" 表示是否自动地将页面的事件和相应的方法绑定到一起,一般这个什要设为false,因为若设为true有可能两次调用相同的事件代码。 Inherits="Issue.Pre"表示页面中的控件是在哪个类中定义的。
基础知识:AutoEventWireup属性 AutoEventWireup属性决定事件句柄怎样连接到控件事件中。当AutoEventWireup设置为true时,ASP.NET决定调用类中的哪一种方法来响应那些在用户与网页的交互中产生的事件。ASP.NET将不必用代理就可以为一个Web控件调用合适的事件句柄,对程序员而言,这样可以无需为事件句柄添加代理。在程序员不是使用Visual Studio因而必须自己添加代码的情况下,这是非常方便的。 当Visual Studio生成一个ASPX文件时,因为Visual Studio为我们生成必要的时间代理,所以将AutoEventWireup设为false。 如果在Visual Studio中将AutoEventWireup设为true,那么一个事件句柄将会被调用两次,一次通过代理,一次是AutoEventWireup的结果。 runat属性,设置为“Server”,说明由服务器来处理表单并生成发送给客户的HTML代码。 同一类型的Web控件可以映射到不同的HTML元素,这取决于客户端的浏览器和Web空间的参数设置。 Page类定义了所请求的网页,位于System.Web.UI名字空间,它包含了为创建基于Web的应用和控件所需的类。 类Page也提供了创建基于Web的应用所需的事件句柄和必要对象。 除了Page类,System.Web.UI还包括Control类。这是一个为所有的Web控件提供一般功能的基类。 ASPX文件和代码后置文件是怎样被用于创建那些发送给客户的网页的呢?首先,类WebTimeTest继承了定义了网页一般功能的Page类。除了继承这些功能以外,WebTimeTest还定义了一些自己特有的功能。 代码后置文件就是定义了这一功能的文件,而ASPX文件定义了GUI。当客户请求一个ASPX文件时,在包含网页的可视化部分(在ASPX文件中定义)和包含网页的逻辑部分(在代码后置文件中定义)的现场后面创建一个类。新类继承自Page。 当网页首次被请求时,这个类被编译并且创建一个实例。这个实例表示网页,它创建了被传送给客户的HTML。由编译过的类创建的组件被放置在项目的Bin目录中。 一旦一个网页实例已经创建,多个用户就可以使用这一实例来访问这个网页——不再需要重新编译。项目仅仅在程序员修改应用程序后才需要重新编译,这些变化由运行时间环境检测,并且项目将被重新编译来反应变化的内。