2009-06-04 14 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 
    {} 
関連する問題