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
  • 相关阅读:
    新手安装Oracle数据库指南
    新手IntelliJ IDEA入门指南
    IntelliJ IDEA 开发工具快捷键大全
    打印杨辉三角
    个人作业-Alpha项目测试
    第三次作业
    第二次作业
    第一次作业-林楠-201731062428
    手把手教你实现在Monaco Editor中使用VSCode主题
    一文搞懂jsBridge的运行机制
  • 原文地址:https://www.cnblogs.com/silva/p/730153.html
Copyright © 2011-2022 走看看