原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
第三章 为控件添加事件
好了,我们之前以前开发一个控件。而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件。
系列文章链接:
ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件
ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl
ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡
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;
public string PaymentMethod
{
get
{
return this.paymentMethod;
}
}
private string creditCardNo;
public string CreditCardNo
{
get
{
return this.creditCardNo;
}
}
private string cardholderName;
public string CardholderName
{
get
{
return this.cardholderName;
}
}
private DateTime expirationDate;
public DateTime ExpirationDate
{
get
{
return this.expirationDate;
}
}
public ValidateCreditCardFormEventArgs(string paymentmenthod, string creditcardno,
string cardholdername, DateTime expirationdate)
{
this.paymentMethod = paymentmenthod;
this.creditCardNo = creditcardno;
this.cardholderName = cardholdername;
this.expirationDate = expirationdate;
}
}
}
2.声明一个委托。
Code
using System;
using System.Collections.Generic;
using System.Text;
namespace CreditCardForm
{
public delegate void ValidateCreditCardFormEventHandler(object sender,ValidateCreditCardFormEventArgs args);
}
3.定义事件
Code
public event ValidateCreditCardFormEventHandler ValidateCreditCardForm;
4.通事件发生后,通知其他对象的方法
Code
//这个方法是受保护的虚方法
protected void OnValidateCreditCardForm(ValidateCreditCardFormEventArgs args)
{
if (ValidateCreditCardForm != null)
handler(this, args);
}
这样几个步骤之后,控件的事件就写完了。大家试试! 有问题,我们下篇接着说!
今天写到这里,希望大家反馈信息,听听大家的想法!