Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1106539
  • 博文数量: 141
  • 博客积分: 3161
  • 博客等级: 中校
  • 技术积分: 3011
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-27 14:53
文章存档

2012年(28)

2011年(113)

分类: 系统运维

2011-09-29 12:21:14

                      第三章 为控件添加事件         

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

     

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

     

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

          1.声明一个委托。

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

          3.定义事件

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

 

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

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

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

 

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

 

    事件定义如下:

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

 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;

  4. namespace CreditCardForm
  5. {
  6.     public class ValidateCreditCardFormEventArgs : EventArgs
  7.     {
  8.         private string paymentMethod;
  9.         public string PaymentMethod
  10.         {
  11.             get
  12.             {
  13.                 return this.paymentMethod;
  14.             }
  15.         }


  16.         private string creditCardNo;
  17.         public string CreditCardNo
  18.         {
  19.             get
  20.             {
  21.                 return this.creditCardNo;
  22.             }
  23.         }


  24.         private string cardholderName;
  25.         public string CardholderName
  26.         {
  27.             get
  28.             {
  29.                 return this.cardholderName;
  30.             }
  31.         }

  32.         private DateTime expirationDate;
  33.         public DateTime ExpirationDate
  34.         {
  35.             get
  36.             {
  37.                 return this.expirationDate;
  38.             }
  39.         }


  40.         public ValidateCreditCardFormEventArgs(string paymentmenthod, string creditcardno,
  41.             string cardholdername, DateTime expirationdate)
  42.         {
  43.             this.paymentMethod = paymentmenthod;
  44.             this.creditCardNo = creditcardno;
  45.             this.cardholderName = cardholdername;
  46.             this.expirationDate = expirationdate;
  47.         }
  48.     }
  49. }

 

          2.声明一个委托。

 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;

  4. namespace CreditCardForm
  5. {
  6.     public delegate void ValidateCreditCardFormEventHandler(object sender, ValidateCreditCardFormEventArgs args);
  7. }

          3.定义事件 

  1. public event ValidateCreditCardFormEventHandler ValidateCreditCardForm;

          
          4.通事件发生后,通知其他对象的方法
  1. protected void OnValidateCreditCardForm(ValidateCreditCardFormEventArgs args)
  2.         {
  3.             if (ValidateCreditCardForm != null)
  4.                 handler(this, args);
  5.         }

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

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

阅读(1090) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~