当前位置: 首页 > news >正文

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.定义一个携带事件信息的类。

 

               

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

 

 

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

     

ContractedBlock.gif ExpandedBlockStart.gif Code
1  public event ValidateCreditCardFormEventHandler ValidateCreditCardForm;

 

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

 

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

 

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

 

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

 

相关文章:

  • 详细介绍SQL交叉表的实例
  • mysql随机取3条数据以及优化
  • Google请人为Android挑刺
  • java中的异常理解
  • CSS-border属性制作小三角
  • Net几种常用传值方式
  • JSP学习笔记(二十八):struts2中验证表单内容
  • 如何做好自动化测试,揭秘阿里巴巴分层自动化实践之路
  • 如何在SQL Server数据库中加密数据
  • 唱歌的方法与技巧[收集]
  • 2016 “Better Software East/DevOps East/Agile Dev East”三个会议上的发言
  • as3corelib系列教程之一:ArrayUtil类的用法
  • 【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(一)
  • HSRP的工作原理
  • 概率图常见模型
  • 【刷算法】从上往下打印二叉树
  • android图片蒙层
  • ComponentOne 2017 V2版本正式发布
  • github指令
  • JWT究竟是什么呢?
  • Objective-C 中关联引用的概念
  • October CMS - 快速入门 9 Images And Galleries
  • PAT A1120
  • Redis的resp协议
  • scrapy学习之路4(itemloder的使用)
  • spring学习第二天
  • WePY 在小程序性能调优上做出的探究
  • 搞机器学习要哪些技能
  • 关于Flux,Vuex,Redux的思考
  • 悄悄地说一个bug
  • 区块链分支循环
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 新书推荐|Windows黑客编程技术详解
  • 译有关态射的一切
  • 因为阿里,他们成了“杭漂”
  • 用 Swift 编写面向协议的视图
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #1015 : KMP算法
  • #Lua:Lua调用C++生成的DLL库
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (原創) 未来三学期想要修的课 (日記)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .Net 4.0并行库实用性演练
  • .net core控制台应用程序初识
  • .net 获取url的方法
  • .NET 药厂业务系统 CPU爆高分析