2009-06-04 7 views
0

Comment puis-je créer un événement sur mon contrôle asp.net personnalisé qui peut atteindre son parent? Je sais comment ajouter des événements et les gérer, mais là où je suis un peu bloqué, c'est comment ajouter un événement qui peut être câblé au parent dans un contrôle de répéteur par exemple. Dans le répéteur est le contrôle, l'événement onclick est par exemple connecté aux feux de contrôle personnalisé et les feux pairs à l'adresse fournie dans l'événement onclick comme n'importe quel autre contrôle le ferait. J'apprécierais aussi si c'est en VB mais C# fera aussi bien.Comment créer un événement pouvant être lié pour mon contrôle personnalisé?

EDIT

Je regardais autour d'une solution simple et suis tombé sur ce qui fonctionne et est très simple à mettre en œuvre. Voir http://msdn.microsoft.com/en-us/library/db0etb8x(VS.85).aspx pour un exemple plus détaillé.

Public Event EditClick As EventHandler(Of MyEventArgs) 
Public Class MyEventArgs 
    Inherits EventArgs 
    Public ItemID As Int32 
End Class 

Protected Sub EditButton_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles EditButton.Click 
    Dim A As New MyEventArgs 
    A.ItemID = ItemID 
    RaiseEvent EditClick(Me, A) 
End Sub 

Puis Liez l'événement.

<uc1:MyItem OnEditClick="EditItem" ... 

Et le code poignée derrière l'événement

Sub EditItem(ByVal sender As Object, ByVal e As MyItem.MyEventArgs) 
     Edit(e.NewsItemID) 
End Sub 

Répondre

0

Je regardais autour d'une solution simple et suis tombé sur ce qui fonctionne et est très simple à mettre en œuvre. Voir http://msdn.microsoft.com/en-us/library/db0etb8x(VS.85).aspx pour un exemple plus détaillé.

Public Event EditClick As EventHandler(Of MyEventArgs) 
Public Class MyEventArgs 
    Inherits EventArgs 
    Public ItemID As Int32 
End Class 

Protected Sub EditButton_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles EditButton.Click 
    Dim A As New MyEventArgs 
    A.ItemID = ItemID 
    RaiseEvent EditClick(Me, A) 
End Sub 

Puis Liez l'événement.

<uc1:MyItem OnEditClick="EditItem" ... 

Et le code poignée derrière l'événement

Sub EditItem(ByVal sender As Object, ByVal e As MyItem.MyEventArgs) 
     Edit(e.NewsItemID) 
End Sub 
1

Jetez un oeil à ma réponse here. Ce fait ce que vous demandez,

également des informations sur l'utilisation de l'événement:

//declare the event using EventHandler<T> 
    public event EventHandler<ImeiRecordParserProblemEventArgs> ImeiRecordParserProblem; 

    //fire event: the check for null sees if the delegate is subscribed to 
    if (ImeiRecordParserProblem != null) 
    { 
    ImeiRecordParserProblem(this, new ImeiRecordParserProblemEventArgs(lineNumber + " : " + lex.Message,ProblemType.AmbiguousRecordType)); 
    } 

    //wire up the event in the catching code or otherwise assign in the .aspx 
    Irp.ImeiRecordParserProblem += new EventHandler<ImeiRecordParserProblemEventArgs>(Irp_ImeiRecordParserProblem); 

//and the EventArgs class: 
public class ImeiRecordParserProblemEventArgs : EventArgs 
    {} 
Questions connexes