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
  • 相关阅读:
    python 数据类型之列表(list)
    Python 数据类型之字符串(string)
    Python 基本语法
    Windows系统下Pycharm的安装与使用
    Windows系统下安装Python
    Fiddler Session List会话列表(监控面板)
    fiddler 常用快捷键
    fiddler 工具栏介绍
    SEPM:USB 权限管理(1)--通知权限过期用户即将卸载权限事宜
    终端管理:计算机违规软件清理 (未完待续)
  • 原文地址:https://www.cnblogs.com/silva/p/730153.html
Copyright © 2011-2022 走看看