我如何为自定义控件创建可绑定事件?

问题描述:

如何在我的自定义asp.net控件上创建一个可以冒泡到其父项的事件?我知道如何添加事件并处理它们,但是我遇到困难的地方在于如何添加一个可以通过中继器控件连接到父级的事件。我如何为自定义控件创建可绑定事件?

在中继器中是控件,例如连接到自定义控件的onclick事件触发,甚至触发onclick事件提供的任何地址,就像任何其他控件一样。我也很感激它,如果它在VB中,但C#也可以。

编辑

我四周寻找一个简单的解决方案,跨越这里面的作品,是很容易实现出来。有关更详细的示例,请参阅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 

然后绑定事件。

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

而后面的代码处理事件

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

我四周寻找一个简单的解决方案,跨越这里面的作品,是很容易实现出来。有关更详细的示例,请参阅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 

然后绑定事件。

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

而后面的代码处理事件

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

看一看我的回答here。这是在帮你问什么,

而且对事件使用的一些信息:

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