web form的code-behind代码组织方式
ASP.NET的页面是一个Page子类,每个页面都是在Page类基础上派生出来的,包含添加的HTML元素,服务器控件,事
件处理过程等。页面被请求时,该类的一个实例被服务器生成并执行,类代码的执行结果就是输出到客户端的html
代码
code-behind.cs文件中定义一个Page子类:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public class CodeBehindExample : Page
{
public Label lblState;
public Button btnClick;
public void btnClick_Click(Object Source, EventArgs e)
{
lblState.Text = "You clicked the button";
}
}
code-behind.aspx文件,这是一个Web Form的入口文件:
<%@ Page Inherits=CodeBehindExample Src="code-behind.cs"%>
<html>
<H3>this is an example for code-behind web forms</h3>
<form runat = "server">
<asp:button id=btnClick runat="server" text="test button" οnclick="btnClick_Click"/>
<asp:Label id=lblState runat="server"/>
</form>
</html>
CodeBehindExample从Page派生而来,增加了两个对象成员和一个函数成员。code-behind.aspx从
CodeBehindExample派生而来,进一步定义了其父类成员btnClick和lblState的属性,并通过继承关系使从父类
CodeBehindExample继承而来的成员函数btnClick_Click成为btnClick的Click事件的响应函数。
编写一个Code-Behind页面的方法,过程如下:
(1). 编写只包括html元素的aspx文件,对需要在代码中操作的html元素(通常是bottom,lable,textbox,listbox等)
赋予独一无二的id属性。通常这个工作由页面的美工设计人员来完成。
(2).编写一个从Page类继承而来的类,例如,用C#编写的名为ClassNameOfCodeBehindClass的类声明为:
public class ClassNameOfCodeBehindClass:Page
{}
(3)在该类中添加各个对象成员,成员名为在aspx文件中定义的各html元素的id属性,成员类型与html元素的类型相
一致。
(4)在服务器端响应事件的服务器控件的属性中指定事件响应函数,并加入适当的指令。例如,在类中定义了
btnButton_OnClick函数,在其html标记中添加属性OnClick="btnButton_OnClick"
并在@Page 指令中增加Inherits=ClassNameOfCodeBehindClass和Src=<filename>属性