2009-06-11 10 views
1

Ich habe ein Benutzersteuerelement, das ein Textfeld enthält. Das Benutzersteuerelement ist selbst in einem anderen Benutzersteuerelement (Eltern) enthalten.Wie wird EventHandler zur übergeordneten Kontrolle weitergeleitet?

Wenn der Text geändert wird (OnTextChanged-Ereignis) Ich brauche eine Möglichkeit, den übergeordneten Benutzer zu steuern.

So würde ich etwas alongs die Linien haben:

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

und die OnChanged Eventhandler würde ausgelöst, wenn die OnTextBoxChanged Ereignis ausgelöst wird der Textbox.

Irgendeine Idee oder Anhaltspunkt?

Danke!

Antwort

1

ein Textfeld ControlTextBox ich den folgenden Code haben hinter meinem Web-Benutzersteuerung genannt Unter der Annahme:

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); 
    } 
} 

und die folgenden in der ascx Datei:

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

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

der Code, den Sie oben Dann bekommt geben richtig ausgelöst.

Verwandte Themen