Web用户控件和Web主页面的事件传递

定义一个用户控件,让其自身触发的事件能够触发主页面的事件。

首先,定义一个用户控件:

命名为WUC02.ascx,在其中放置一个TextBox,把AutoPostBack设置为True.

为其添加一个TextChange事件,页面主要代码如下(代码有省略)

     public abstract class WUC02 : System.Web.UI.UserControl

     {

         protected System.Web.UI.WebControls.TextBox txt1;

         public delegate void myDelegate(object sender,myEventArgs e); //定义代理

         public event myDelegate myEvent; //定义事件

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

         {

              if(txt1.Text == "yangxi")

              {

                   myEventArgs eveArgs = new myEventArgs();

                   eveArgs.Value = "/"" + txt1.Text + "/" is pass by the Event Args";

                   if(myEvent != null)

                   {

                       myEvent(txt1,eveArgs); //触发事件

                   }

              }

              else

              {

                   txt1.Text = "";

              }

         }

     }

     //自定义事件的参数

     public class myEventArgs:System.EventArgs

     {

         private string _value;

         public string Value

         {

              get{ return _value; }

              set{ _value = value;}

         }

     }

     主页面,如下图:

    

    

    

     后台主要代码如下(代码有省略):

     public class WebForm10 : System.Web.UI.Page

     {

         protected System.Web.UI.WebControls.PlaceHolder PH1;

         protected System.Web.UI.WebControls.Label lbl1;

         protected WUC02 myUC2;

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

         {

                   myUC2 = (WUC02)LoadControl("./WUC02.ascx");//添加用户控件

                   myUC2.myEvent += new WUC02.myDelegate(this.OnMyEvent); //注册事件

                   PH1.Controls.Add(myUC2);

         }

         //事件触发的方法

         private void OnMyEvent(object sender,myEventArgs e)

         {

              lbl1.Text = e.Value;

         }

     运行如下:

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值