2009-06-04 17 views
0

Wie erstelle ich ein Ereignis auf meinem benutzerdefinierten asp.net-Steuerelement, die Blase zu seinem übergeordneten? Ich weiß, wie man Ereignisse hinzufügt und behandelt, aber wo ich ein wenig festhalte, ist, wie man ein Ereignis hinzufügt, das zum Beispiel in einem Repeater-Steuerelement mit dem Elternknoten verdrahtet werden kann.Wie erstelle ich ein bindbares Ereignis für mein benutzerdefiniertes Steuerelement?

Im Repeater ist die Steuerung, das onclick -Ereignis zum Beispiel mit der benutzerdefinierten Steuerung verbunden, feuert und die sogar feuert auf jede Adresse, die im onclick-Ereignis zur Verfügung gestellt wird, genau wie jede andere Kontrolle tun würde. Ich würde es auch schätzen, wenn es in VB ist, aber C# wird es auch tun.

EDIT

ich nach einer einfachen Lösung gesucht um und kam dies durch die sehr einfach funktioniert und zu implementieren ist. Ein detaillierteres Beispiel finden Sie unter http://msdn.microsoft.com/en-us/library/db0etb8x(VS.85).aspx.

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 

Dann binden Sie das Ereignis.

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

Und der Code hinter behandeln das Ereignis

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

Antwort

0

Ich war auf der Suche rund um für eine einfache Lösung und kam dies über die funktioniert und ist sehr einfach zu implementieren. Ein detaillierteres Beispiel finden Sie unter http://msdn.microsoft.com/en-us/library/db0etb8x(VS.85).aspx.

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 

Dann binden Sie das Ereignis.

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

Und der Code hinter Griff, um das Ereignis

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

here einen Blick auf meine Antwort. Dies zu tun, was Sie fragen,

auch einige Informationen über Event Nutzung:

//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 
    {} 
Verwandte Themen