当前位置: 首页 > 编程笔记 >

浅谈ASP.NET中最简单的自定义控件

狄信然
2023-03-14
本文向大家介绍浅谈ASP.NET中最简单的自定义控件,包括了浅谈ASP.NET中最简单的自定义控件的使用技巧和注意事项,需要的朋友参考一下

ASP.NET用户控件一般适用于产生相对静态的内容,所以没有builtin的事件支持。本文讨论用户控件返回事件的方法。

 假定用户控件(UserControl.ascx)中包含按钮控件AButton,希望实现按AButton按钮时,包含该用户控件的页面可以接收到事件。为此,小鸡射手在用户控件和页面的代码中分别作了处理。

        UserControl.ascx.cs中的处理:
        1. 定义public的事件委托,如ClickEventHandler;
        2. 在UserControl类中声明事件,如Click;
        3. 在UserControl类中定义引发事件的方法,如OnClick()方法;
        4. 在UserControl类的相关方法中调用引发事件的方法,如在Button_Click()中调用OnClick()。

        核心代码示意如下:


        public delegate void ClickEventHandler(object sender, EventArgs e);

        public class MyUserControl : System.Web.UI.UserControl

        {

           protected System.Web.UI.WebControls.Button AButton;

           public event ClickEventHandler Click;

           protected void OnClick(EventArgs e) 

           {

               if (Click!=null) Click(this, e); 

           }

           private void AButton_Click(object sender, System.EventArgs e)

           {

               this.OnClick(e);

           }

        }


 
包含UserControl的页面cs文件中的处理:

     1. InitializeComponent()中增加事件处理程序,采用FindControl方法找到UserControl;
     2. 定义事件处理方法,在该方法中处理UserControl的事件,如UserControl_Clicked()。
核心代码示意如下:


     private void InitializeComponent()

     {    

           this.Load += new System.EventHandler(this.Page_Load);

           MyUserControl uc = this.FindControl("myUserControlID") as MyUserControl;

           uc.Click += new ClickEventHandler(this.UserControl_Clicked);

     }

     private void UserControl_Clicked(object sender, System.EventArgs e)

     {

           // UserControl_Clicked event hanlder

     }


总结一下,其实就是将事件机制利用手工编程的方法加进去:加入一般控件IDE自动生成的代码。顺便说一下,C#的事件机制实现了Obeserver pattern,除了UI还可以用于业务层,能有效地降低对象间的耦合度,像UserControl那样,根本无需知道包含它的页面对象是谁!

 类似资料:
  • 本文向大家介绍浅谈自定义注解在Spring中的应用,包括了浅谈自定义注解在Spring中的应用的使用技巧和注意事项,需要的朋友参考一下 1.Java自定义注解与Spring Java注解作为程序元素(类、成员变量、成员方法等)的一种元数据信息,对程序本身的执行不会产生影响。通过自定义注解,可以给程序元素添加特殊的声明。 Spring作为构建企业级应用的平台,提供了丰富的功能。将Java的自定义注解

  • 本文向大家介绍asp.net webform自定义分页控件,包括了asp.net webform自定义分页控件的使用技巧和注意事项,需要的朋友参考一下 做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件。 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册。 有图有真相,给个直观的认识: 自定义分页控件前台代码: 自定义分页控件后台代码: 当前页码、总共多少条记录

  • 本文向大家介绍浅谈php自定义错误日志,包括了浅谈php自定义错误日志的使用技巧和注意事项,需要的朋友参考一下 平时经常看php的错误日志,很少有机会去自己动手写日志,看了王健的《最佳日志实践》觉得写一个清晰明了,结构分明的日志还是非常有必要的。 在写日志前,我们问问自己:为什么我们有时要记录自定义的日志呢?而不用系统默认的日志记录方式呢? 我认为有两个原因: 1.团队需要一个统一格式的日志方便管

  • 本文向大家介绍简单谈谈C#中深拷贝、浅拷贝,包括了简单谈谈C#中深拷贝、浅拷贝的使用技巧和注意事项,需要的朋友参考一下 Object.MemberwiseClone 方法 创建当前 Object 的浅表副本。 MemberwiseClone 方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。 如果字段是值类型的,则对该字段执行逐位复制。 如果字段是引用类型,则复

  • 本文向大家介绍浅谈ASP.NET常用数据绑定控件优劣总结,包括了浅谈ASP.NET常用数据绑定控件优劣总结的使用技巧和注意事项,需要的朋友参考一下 本文的初衷在于对Asp.net常用数据绑定控件进行一个概览性的总结,主要分析各种数据绑定控件各自的优缺点,以便在实际的开发中选用合适的控件进行数据绑定,以提高开发效率。 因为这些数据绑定控件大部分都已经封装的很好了,稍微有一些基础的朋友都可以很容易的上

  • 本文向大家介绍浅谈java中BigDecimal类的简单用法,包括了浅谈java中BigDecimal类的简单用法的使用技巧和注意事项,需要的朋友参考一下 一、BigDecimal概述 ​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算