zoukankan      html  css  js  c++  java
  • 为用户控件 User Control添加事件(转)

    原文地址:http://www.cnblogs.com/AXzhz/archive/2007/11/02/947011.html

    【引】
    项目中用了许多UC(User Control),其中有些主页需要知道UC做了某个Event后,进行联动动作.
    例如:如果UC的Button控件被Click,那么主页(Page)要做一个显示不同信息的动作.
    因为主页(Page)不能直接知道UC里Button被Click的事件,这个时候就用到了事件代理.

    【步骤】
    ①为UC添加事件代理

    public event EventHandler AX;

    ②在appropriate触发条件处添加事件
            if (AX != null)
            {
                AX(
    this, e);
                
    //Or use the following sentence code.
                
    //AX(this, new EventArgs());
            }

    ③添加主页(Page)要执行的事件

     protected void Event_AX(object sender, EventArgs e)
        {
            Response.Write("Event has occur!
    <br/>");
        }

    ④在主页(Page)上添加事件代理,从而执行主页上的Function
    方法1:*.CS端

    UC_AXzhz.AX += new EventHandler(Event_AX); 


    方法2:*.aspx端【注:使用此方法,Event_AX必须为protected/interanl/public类型,不能为private类型】

    <AX:UC_AX ID="UC_AXzhz" OnAX="Event_AX" runat="server" />    

    【完整代码】
    UC前端:

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UC_AX.ascx.cs" Inherits="UC_AX" %>
    <asp:Button ID="btnClick" runat="server" OnClick="btnClick_Click" Style="z-index: 100;
        left: 156px; position: absolute; top: 113px"
     Text="ClickMe" Height="25px" Width="74px" />


    UC后台:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class UC_AX : System.Web.UI.UserControl
    {
        
    //①添加事件代理
        public event EventHandler AX;

        
    protected void Page_Load(object sender, EventArgs e)
        
    {
        }

        
    protected void btnClick_Click(object sender, EventArgs e)
        
    {
            
    //②如果点击了Button, Fire the代理事件
            
    //可以通过多种条件fire事件代理.
            
    //Must add this condition, Otherwise,if AX equal null
            
    //Will throw a exception
            if (AX != null)
            
    {
                AX(
    this, e);
                
    //Or use the following sentence code.
                
    //AX(this, new EventArgs());
            }

        }

    }


    Page前端:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default_AX.aspx.cs" Inherits="Default_AX" %>

    <%@ Register Src="UC_AX.ascx" TagName="UC_AX" TagPrefix="AX" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title>Untitled Page</title>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
    <!--//④Another way:为代理添加需要执行的事件-->  
            
    <AX:UC_AX ID="UC_AXzhz" OnAX="Event_AX" runat="server" />    
        
    </div>
        
    </form>
    </body>
    </html>


    Page后台:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class Default_AX : System.Web.UI.Page
    {   

        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            
    //③为代理添加需要执行的事件
            UC_AXzhz.AX += new EventHandler(Event_AX); 
        }


        
    //⑤当UC的Button被Click后,主页上要执行的动作
        protected void Event_AX(object sender, EventArgs e)
        
    {
            Response.Write(
    "Event has occur!<br/>");
        }


    }
  • 相关阅读:
    TextureView获取RGBA
    直播预告 | 微软云:助力加速企业数字化转型
    安全无极限,防护向未来——Check Point 安全运维分享会
    数字未来·始物于行 荣之联IT赋能者峰会
    掌控安全 云领创新 —— 2018深信服亚太区巡展
    Dynatrace人工智能如何帮你更好管理云上运维
    Microsoft 365 DevDays
    买TOKENSKY区块链大会通证 豪送首尔一日游
    人工智能的背景下,物联网行业将面临怎样的发展趋势?
    走进四维图新,甲骨文红科技为智能汽车大脑赋能
  • 原文地址:https://www.cnblogs.com/pfs1314/p/1764276.html
Copyright © 2011-2022 走看看