📅  最后修改于: 2020-11-21 05:40:14             🧑  作者: Mango
事件是一种动作或事件,例如鼠标单击,按键按下,鼠标移动或任何系统生成的通知。流程通过事件进行通信。例如,中断是系统生成的事件。当事件发生时,应用程序应该能够对其进行响应和管理。
ASP.NET中的事件在客户端计算机上引发,并在服务器计算机上处理。例如,用户单击浏览器中显示的按钮。引发Click事件。浏览器通过将其发布到服务器来处理此客户端事件。
服务器具有一个子例程,该子例程描述了引发事件时的处理方式。它称为事件处理程序。因此,当事件消息传输到服务器时,它将检查Click事件是否具有关联的事件处理程序。如果具有,则执行事件处理程序。
ASP.NET事件处理程序通常采用两个参数并返回void。第一个参数表示引发事件的对象,第二个参数是事件参数。
事件的一般语法为:
private void EventName (object sender, EventArgs e);
最重要的应用程序事件是:
Application_Start-在启动应用程序/网站时引发。
Application_End-在停止应用程序/网站时引发。
同样,最常用的Session事件是:
Session_Start-当用户首次从应用程序请求页面时引发。
Session_End-会话结束时引发。
常见的页面和控件事件是:
DataBinding-当控件绑定到数据源时引发。
处置-释放页面或控件时引发。
错误-这是一个页面事件,当引发未处理的异常时发生。
初始化-初始化页面或控件时引发。
加载–加载页面或控件时引发。
PreRender-在呈现页面或控件时引发。
卸载-从内存中卸载页面或控件时引发。
所有ASP.NET控件都实现为类,并且它们具有事件,当用户对其执行特定操作时会触发这些事件。例如,当用户单击按钮时,将生成“单击”事件。为了处理事件,有内置的属性和事件处理程序。事件处理程序被编码为响应事件,并对事件采取适当的措施。
默认情况下,Visual Studio通过在Sub过程中包含Handles子句来创建事件处理程序。此子句命名该过程处理的控件和事件。
按钮控件的ASP标签:
Click事件的事件处理程序:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnCancel.Click
End Sub
没有Handles子句的事件也可以编码。然后,必须根据控件的适当事件属性来命名处理程序。
按钮控件的ASP标签:
Click事件的事件处理程序:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub
常见的控制事件是:
Event | Attribute | Controls |
---|---|---|
Click | OnClick | Button, image button, link button, image map |
Command | OnCommand | Button, image button, link button |
TextChanged | OnTextChanged | Text box |
SelectedIndexChanged | OnSelectedIndexChanged | Drop-down list, list box, radio button list, check box list. |
CheckedChanged | OnCheckedChanged | Check box, radio button |
某些事件导致表单立即回发到服务器,这些事件称为回发事件。例如,单击事件,例如Button.Click。
某些事件不会立即回发到服务器,这些事件称为非回发事件。
例如,更改事件或选择事件,例如TextBox.TextChanged或CheckBox.CheckedChanged。通过将非回发事件的AutoPostBack属性设置为true,可以使它们立即回发。
Page对象的默认事件是Load事件。同样,每个控件都有一个默认事件。例如,按钮控件的默认事件是Click事件。
只需在设计视图中双击控件即可在Visual Studio中创建默认事件处理程序。下表显示了一些通用控件的默认事件:
Control | Default Event |
---|---|
AdRotator | AdCreated |
BulletedList | Click |
Button | Click |
Calender | SelectionChanged |
CheckBox | CheckedChanged |
CheckBoxList | SelectedIndexChanged |
DataGrid | SelectedIndexChanged |
DataList | SelectedIndexChanged |
DropDownList | SelectedIndexChanged |
HyperLink | Click |
ImageButton | Click |
ImageMap | Click |
LinkButton | Click |
ListBox | SelectedIndexChanged |
Menu | MenuItemClick |
RadioButton | CheckedChanged |
RadioButtonList | SelectedIndexChanged |
此示例包括一个带有标签控件和按钮控件的简单页面。当发生诸如Page_Load,Page_Init,Page_PreRender等页面事件时,它会发送一条消息,该消息由标签控件显示。单击该按钮时,将引发Button_Click事件,该事件还会发送一条消息以显示在标签上。
创建一个新网站,然后从控件工具箱中拖动标签控件和按钮控件。在属性窗口中,将控件的ID设置为.lblmessage。和.btnclick。分别。将按钮控件的文本属性设置为“单击”。
标记文件(.aspx):
Untitled Page
双击设计视图以移至文件后面的代码。 Page_Load事件是自动创建的,其中没有任何代码。写下以下不言自明的代码行:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace eventdemo {
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
lblmessage.Text += "Page load event handled.
";
if (Page.IsPostBack) {
lblmessage.Text += "Page post back event handled.
";
}
}
protected void Page_Init(object sender, EventArgs e) {
lblmessage.Text += "Page initialization event handled.
";
}
protected void Page_PreRender(object sender, EventArgs e) {
lblmessage.Text += "Page prerender event handled.
";
}
protected void btnclick_Click(object sender, EventArgs e) {
lblmessage.Text += "Button click event handled.
";
}
}
}
执行页面。标签显示页面加载,页面初始化以及页面预渲染事件。点击按钮查看效果: