返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

ASP.NET-事件处理

时间:2020-01-13 16:01来源:知行网www.zhixing123.cn 编辑:麦田守望者

 事件是一种动作或事件,例如鼠标单击,按键按下,鼠标移动或任何系统生成的通知。流程通过事件进行通信。例如,中断是系统生成的事件。当事件发生时,应用程序应该能够对其进行响应和管理。

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标记:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" />

Click事件的事件处理程序:

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)      Handles btnCancel.Click     End Sub

没有Handles子句的事件也可以编码。然后,必须根据控件的适当事件属性来命名处理程序。

按钮控件的ASP标记:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />

Click事件的事件处理程序:

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)  End Sub

常见的控制事件是:

事件 属性 控制项
请点击 OnClick 按钮,图像按钮,链接按钮,图像图
命令 OnCommand 按钮,图像按钮,链接按钮
TextChanged OnTextChanged 文本框
SelectedIndexChanged OnSelectedIndexChanged 下拉列表,列表框,单选按钮列表,复选框列表。
CheckedChanged OnCheckedChanged 复选框,单选按钮

某些事件导致表单立即回发到服务器,这些事件称为回发事件。例如,单击事件,例如Button.Click。

某些事件不会立即回发到服务器,这些事件称为非回发事件。

例如,更改事件或选择事件,例如TextBox.TextChanged或CheckBox.CheckedChanged。通过将非回发事件的AutoPostBack属性设置为true,可以使它们立即回发。

默认事件

Page对象的默认事件是Load事件。同样,每个控件都有一个默认事件。例如,按钮控件的默认事件是Click事件。

只需在设计视图中双击控件即可在Visual Studio中创建默认事件处理程序。下表显示了一些通用控件的默认事件:

控制 默认事件
AdRotator AdCreated
项目符号列表 请点击
纽扣 请点击
压延机 选择已更改
复选框 CheckedChanged
复选框列表 SelectedIndexChanged
数据网格 SelectedIndexChanged
数据清单 SelectedIndexChanged
下拉列表 SelectedIndexChanged
超链接 请点击
图像按钮 请点击
图片地图 请点击
链接按钮 请点击
列表框 SelectedIndexChanged
菜单 MenuItemClick
单选按钮 CheckedChanged
单选按钮列表 SelectedIndexChanged

此示例包括一个带有标签控件和按钮控件的简单页面。当发生诸如Page_Load,Page_Init,Page_PreRender等页面事件时,它会发送一条消息,该消息由标签控件显示。单击按钮后,将引发Button_Click事件,该事件还会发送一条消息,以显示在标签上。

创建一个新网站,然后从控件工具箱中拖动标签控件和按钮控件。使用属性窗口,将控件的ID设置为.lblmessage。和.btnclick。分别。将按钮控件的文本属性设置为“单击”。

标记文件(.aspx):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"     Inherits="eventdemo._Default" %>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml" >     <head runat="server">       <title>Untitled Page</title>    </head>        <body>       <form id="form1" runat="server">          <div>             <asp:Label ID="lblmessage" runat="server" >                          </asp:Label>                          <br />             <br />             <br />                          <asp:Button ID="btnclick" runat="server" Text="Click" onclick="btnclick_Click" />          </div>       </form>    </body>     </html>

双击设计视图以移至文件背后的代码。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. <br />";                    if (Page.IsPostBack) {             lblmessage.Text += "Page post back event handled.<br/>";          }       }              protected void Page_Init(object sender, EventArgs e) {          lblmessage.Text += "Page initialization event handled.<br/>";       }              protected void Page_PreRender(object sender, EventArgs e) {          lblmessage.Text += "Page prerender event handled. <br/>";       }              protected void btnclick_Click(object sender, EventArgs e) {          lblmessage.Text += "Button click event handled. <br/>";       }    } }

执行页面。标签显示页面加载,页面初始化以及页面预渲染事件。点击按钮查看效果:

ASP.NET事件示例

 
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • ASP.NET-服务器端

    我们研究了页面生命周期以及页面如何包含各种控件。 页面本身被实例化为控件对象。 所...

  • ASP.NET-事件处理

    事件是一种动作或事件,例如鼠标单击,按键按下,鼠标移动或任何系统生成的通知。 流...

  • ASP.NET-第一个示例

    ASP.NET页面由许多服务器控件以及HTML控件,文本和图像组成。 来自页面的敏感数据以及...

  • ASP.NET-生命周期

    ASP.NET生命周期指定如何: ASP.NET处理页面以产生动态输出 该应用程序及其页面被实例...

  • ASP.NET-环境设置

    ASP.NET在构建Web应用程序的HTTP之上提供了一个抽象层。 它在面向对象的范式中提供高...

  • ASP.NET-简介

    ASP.NET是一个Web开发平台,可提供编程模型,全面的软件基础结构以及为PC和移动设备构...

猜你感兴趣