2009-06-04 2 views
0

Как создать событие в моем настраиваемом элементе управления asp.net, который может пузыриться до его родителя? Я знаю, как добавлять события и обрабатывать их, но там, где я немного зацикливаюсь, заключается в том, как добавить событие, которое может быть подключено к родительскому элементу, например, в контроллере ретранслятора.Как создать связанное событие для моего настраиваемого элемента управления?

В ретрансляторе есть элемент управления, например, событие onclick, связанное с пожарами пользовательского контроля, и четные огни на любой адрес, предоставленный в событии onclick, как и любой другой элемент управления. Я также был бы признателен, если он будет в VB, но C# тоже будет работать.

EDIT

Я искал вокруг для простого решения и наткнулся на это, который работает и очень прост в реализации. См. 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 

ответ

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 
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 
    {} 
Смежные вопросы

 Смежные вопросы