ASP.NET把几乎所有的HTML控件都转化成了服务器控件,在ASP.NET中,Web控件是使用相应的标记来编写控件的。Web控件的标记有特定的格式:以<asp: 开始,后面跟相应控件的类型名,最后以 /> 结束,在期间可以设置各种属性:
<asp:TextBox ID="text" name="text1">
当客户端请求该控件时,服务器会把下面的代码发送到服务器:
<input type="text" ID="text1" runat="text1">
Web控件事件:
在ASP.NET页面中,用户与服务器的交互是通过Web控件的事件来完成的,如果当单击一个按钮控件时,就会触发该按钮的单击事件,如果程序员在该按钮的单击事件处理函数中编写相应的代码的话,服务器就会按照这些代码对用户的单击行为作出响应;
Web控件的事件模型:
HTML控件的客户端事件是在客户端引发和处理的,ASP.NET页面中的Web控件的事件是在客户端引发并在服务器端处理;
首先客户端捕捉到事件信息,然后通过HTTP POST将事件信息传输到服务器,而且页框架必须解释该POST以确定所发生的事件,然后在要处理该事件的服务器上调用代码中的相应方法;
所有Web事件处理函数都包含两个参数:第一个参数表示引发事件的对象,以及包含任何事件特定信息的事件对象;第二个参数是EventArgs类型,或是EventArgs类型的继承类型;
Web控件的事件绑定:
一个事件就是一条信息。在应用程序中必须将信息转化成代码中的方法调用,事件消息与特定方法之间的绑定是通过事件委托来实现的。在ASP.NET页面中,如果控件是以声明的形式在页面中创建的,则不需要显示的对委托进行编码。
例如,将一个Button控件的Click事件绑定到名为ButtonClick的方法:
<asp:button id="Button1" runat="server" text="按钮" οnclick="ButtonClick">
如果控件是被动态创建的,就需呀用代码动态地绑定事件到方法,例如,以下代码声明了一个按钮事件,并把名为ButtonClick的方法绑定到该控件的Click事件:
Button b = new Button;
b.Text = "按钮";
b.Click += new System.EventHandler(ButtonClick);