2009-06-11 28 views
1

我有一个包含文本框的用户控件。用户控件本身包含在另一个用户控件(父)中。如何将EventHandler转发给父控件?

当文本被改变(OnTextChanged事件)我需要一种方式来告诉父级用户控制。

所以我有一些alongs的线路:

<uc1:MyUserControl OnChanged="DoSomething" runat="server" ID="MyUserControl1"> 

,并给onChanged事件处理程序将在文本框的OnTextBoxChanged事件触发火灾。

任何想法或线索?

谢谢!

回答

1

假设称为ControlTextBox一个文本框我已经背着我web用户控件下面的代码:

public partial class MyUserControl : System.Web.UI.UserControl 
{ 
    public event EventHandler Changed; 

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

    protected void ControlTextBox_Changed(object sender, EventArgs e) 
    { 
     OnChanged(); 
    } 

    protected virtual void OnChanged() 
    { 
     if (Changed != null) 
      Changed(this, EventArgs.Empty); 
    } 
} 

,并在ASCX文件中的以下内容:

<%@ Control Language="C#" AutoEventWireup="true" 
    CodeFile="MyUserControl.ascx.cs" Inherits="MyUserControl" %> 

<asp:TextBox runat="server" ID="ControlTextBox" 
    OnTextChanged="ControlTextBox_Changed" AutoPostBack="true"/> 

然后你上面给的代码获取正确启动。

相关问题