zoukankan      html  css  js  c++  java
  • .Net 2.0 事件机制,更简化了...

    Case: aspx页面有一控件,希望点击控件上一按钮,进行一些运算,得到一DataTable,将该DataTable绑定到页面一数据控件上。

    控件cs文件:

    1. 定义代理

    public delegate void RetrieveTargetsHandler(object sender, RetrieveEventArgs e);


    public class RetrieveEventArgs : EventArgs
    {
        
    private DataTable resultTable;

        
    public DataTable ResultTable
        {
            
    get { return resultTable; }
        }


        
    public RetrieveEventArgs(DataTable ret)
            : 
    base()
        {
            
    this.resultTable = ret;
        }
    }

    2. 定义事件

    public event RetrieveTargetsHandler RetrieveTargets;

    3. 点控件按钮时,

    protected void btnSearchByConditions_Click(object sender, EventArgs e)
        {
            DataTable dt 
    = new DataTable();
            
    //
            RetrieveTargets(thisnew RetrieveEventArgs(dt));
        }


    在aspx页面Page_Load中,实例化代理,并指定处理方法.

    this.TargetSearchByConditions1.RetrieveTargets += new RetrieveTargetsHandler(TargetSearchByConditions1_RetrieveTargets);

    void TargetSearchByConditions1_RetrieveTargets(object sender, RetrieveEventArgs e)
        {
            DataTable dt 
    = e.ResultTable;
            Response.Write(
    "yes.Good!");
        }


    而在.Net1.1时,

    如果想要您的类引发一个名为 EventName 的事件,您需要以下元素。
    • 持有事件数据的类,名为 EventNameEventArgs。该类必须从 System.EventArgs 导出。
    • 事件的委托,名为 EventNameEventHandler。
    • 引发事件的类。该类必须提供:
      1. 事件声明。
        [C#]
                public event EventNameEventHandler EventName;
                [Visual Basic]
                Public Event EventName As EventNameEventHandler
      2. 引发事件的方法,名为 OnEventName
  • 相关阅读:
    register based 和 stack based虚拟机的区别
    Java in a Nutshell学习笔记
    Java中interface和abstract class的区别和联系
    Java中final的作用
    Android 源码下载
    Android Fragment 你应该知道的一切
    Android Fragment 真正的完全解析(下)
    Android Fragment 真正的完全解析(上)
    IntelliJ IDEA 使用总结
    Linux在目录中查找某个函数
  • 原文地址:https://www.cnblogs.com/silva/p/730153.html
Copyright © 2011-2022 走看看