0

如何在我的自定义 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
4

2 回答 2

1

看看我的回答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
    {}
于 2009-06-04T02:29:34.177 回答
0

我一直在寻找一个简单的解决方案,并遇到了这个可行且实施起来非常简单的解决方案。有关更详细的示例,请参阅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
于 2009-12-10T04:28:25.627 回答