2010-02-22 2 views
6

Ich habe ein Benutzersteuerelement mit einer Schaltfläche namens Upload in es. Die Schaltfläche Click-Ereignis sieht wie folgt aus:User Control Ereignisse

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    // Upload the files to the server 
} 

auf der Seite, wo der Benutzer die Kontrolle vorhanden ist, nachdem der Benutzer auf die Upload-Schaltfläche klickt ich rechts eine Operation durchgeführt werden soll, nachdem der Button-Klick-Ereigniscode in der ausgeführt wird, Nutzerkontrolle. Wie kann ich nach Abschluss der Arbeit auf das Click-Ereignis tippen?

Antwort

8

Sie haben ein Ereignis in Ihrer Benutzersteuerung zu schaffen, so etwas wie:

public event EventHandler ButtonClicked; 

und dann in Ihrer Methode Feuer des Ereignis ...

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    // Upload the files to the server 

    if(ButtonClicked!=null) 
     ButtonClicked(this,e); 
} 

Dann werden Sie in der Lage zu befestigen an das Ereignis ButtonClicked Ihres Benutzersteuerelements.

+1

Und dann stellen Sie sicher, dass die Seite, die das usercontrol enthält, auf das Ereignis wartet .... this.myUploadControl.ButtonClicked + = new EventHandler (MyUploadControl_ButtonClicked); Wo MyUploadControl_ButtonClicked in der Klasse Page als Ereignishandler deklariert ist. –

0

erstellen Public Property in Usercontrol Codebehind:

public Button btn 
    { 
     get { return this.Button1; } 
    } 

Dann auf Page_load Sie es mögen können:

WebUserControl11.btn.Click += (s, ea) => { Response.Write("Page Write"); }; 
0

Statt nur zu schreiben, einen Event-Handler ein anderes Ereignis zu nennen, können Sie stattdessen Verknüpfen Sie die Ereignisse direkt unter Verwendung einer expliziten Ereignisimplementierung:

Jetzt abonniert jeder, der Ihr ButtonClicked-Ereignis abonniert, direkt das Click-Ereignis der btnUpload-Steuerung. Ich finde, dass dies eine viel prägnantere Art ist, dies zu implementieren.