您的位置:首页 > 编程语言 > ASP

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

2009-06-06 21:10 357 查看
第三章 为控件添加事件

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

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

很事件要懂。

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

1.声明一个委托。

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

3.定义事件

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

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

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

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

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

到服务器。

事件定义如下:

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




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.声明一个委托。




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.定义事件




Code
1 public event ValidateCreditCardFormEventHandler ValidateCreditCardForm;

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




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

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

今天写到这里,希望大家反馈信息,听听大家的想法!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐