ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

简介: 原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇      第三章 为控件添加事件                        好了,我们之前以前开发一个控件。而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件。
原文: ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

     

第三章 为控件添加事件         

       

      好了,我们之前以前开发一个控件。而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件。

     

系列文章链接:

ASP.NET自定义控件组件开发 第一章 待续

ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

ASP.NET自定义控件组件开发 第一章 第三篇

ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件

ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡

ASP.NET自定义控件组件开发 第五章 模板控件开发

ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

ASP.NET2.0组件控件开发视频 初体验

     ASP.NET的开发都是事件驱动的,现在我们就来为控件添加事件。在说事件之前,希望大家对C#的语法要熟悉,对委托

很事件要懂。

     

     其实定义事件的步骤很简单:

          1.声明一个委托。

          2.定义一个携带事件信息的类。

          3.定义事件

          4.定义一个通事件发生后,通知其他对象的方法

 

         首先来理清一下我们的思路:

          

          1.在下拉框中选中一个值,并且在输入框中也输入相应的值。

 

          2.我们在页面点击“提交”按钮,按钮就触发我们自定义的一个事件Validate(验证输入信息的正确行)。

 

         我们在提交的时候要把控件的信息传给服务器,所以我们要定义一个事件信息类,来携带事件发生时,把个信息类送

 

到服务器。

 

     事件定义如下:

 

          1.定义一个携带事件信息的类。

 

               

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 
 5 namespace CreditCardForm
 6 {
 7     public class ValidateCreditCardFormEventArgs:EventArgs 
 8     {
 9         private string paymentMethod;
10         public string PaymentMethod
11         {
12             get
13             {
14                 return this.paymentMethod;
15             }
16         }
17 
18 
19         private string creditCardNo;
20         public string CreditCardNo
21         {
22             get
23             {
24                 return this.creditCardNo;
25             }
26         }
27 
28 
29         private string cardholderName;
30         public string CardholderName
31         {
32             get
33             {
34                 return this.cardholderName;
35             }
36         }
37 
38         private DateTime expirationDate;
39         public DateTime ExpirationDate
40         {
41             get
42             {
43                 return this.expirationDate;
44             }
45         }
46 
47 
48         public ValidateCreditCardFormEventArgs(string paymentmenthod, string creditcardno,
49             string cardholdername, DateTime expirationdate)
50         {
51             this.paymentMethod = paymentmenthod;
52             this.creditCardNo = creditcardno;
53             this.cardholderName = cardholdername;
54             this.expirationDate = expirationdate;
55         }
56     }
57 }
58 

 

     

               2.声明一个委托。

 

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 
5 namespace CreditCardForm
6 {
7     public delegate void ValidateCreditCardFormEventHandler(object sender,ValidateCreditCardFormEventArgs args);
8 }
9 

          

          3.定义事件

     

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
1  public event ValidateCreditCardFormEventHandler ValidateCreditCardForm;

 

          4.通事件发生后,通知其他对象的方法

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
1  
2 //这个方法是受保护的虚方法
3 protected void OnValidateCreditCardForm(ValidateCreditCardFormEventArgs args)
4         {
5              if (ValidateCreditCardForm != null)
6                 handler(this, args);
7         }

 

          这样几个步骤之后,控件的事件就写完了。大家试试! 有问题,我们下篇接着说!

 

          今天写到这里,希望大家反馈信息,听听大家的想法!

 

目录
相关文章
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
127 8
|
12月前
|
C#
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
11月前
|
开发者 Windows
.NET 开源扁平化、美观的 C/S 控件库
【10月更文挑战第23天】介绍了三款适用于 .NET 平台的开源扁平化、美观的 C/S 控件库:MaterialSkin 采用 Google Material Design 风格,适合现代感界面;Krypton Toolkit 提供丰富控件,界面易于定制;Fluent Ribbon Control Suite 模仿 Office 界面,适合复杂功能应用。每款控件库均附有示例代码及 GitHub 链接。
442 0
|
11月前
|
C# Android开发 iOS开发
一组.NET MAUI绘制的开源控件 - AlohaKit
一组.NET MAUI绘制的开源控件 - AlohaKit
203 0
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
140 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
193 7
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
371 0
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
209 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
160 0