2011-01-25 6 views
0

ページに複数のユーザーコントロールがあり、それぞれにサーバー側で同じロジックを実行する複数のリンクボタンがあります。すべてのlinkbuttonsがページのコードの背後にあるコードで定義されている同じイベントハンドラを持つ方法はありますか?必要な場合は、クリック可能な画像をサポートできるようユーザーコントロール内の複数のリンクボタンは、aspxページのイベントハンドラを呼び出す必要があります

は、私がいる限り、他のHTMLやASP.NETコントロールをするlinkbuttonsを変更することができます。

答えて

2

はイベントとアップワイヤー、それを作成するのに役立ちます。そして、linkbuttons OnClickイベントハンドラから呼び出す:

UserControl.ascx:ユーザーまで、あなたの親ページのワイヤーインサイド

<asp:LinkButton 
runat="server" 
id="linkbutton1" 
OnClick="LinkButtonClicked"> 
Click Me 
</asp:LinkButton> 
<asp:LinkButton 
runat="server" 
id="linkbutton2" 
OnClick="LinkButtonClicked"> 
Click Me Again 
</asp:LinkButton> 

UserControl.ascx.cs

public event EventHandler UserControlLinkClick; 

protected void LinkButtonClicked(object sender, EventArgs e) 
{ 
    if (this.UserControlLinkClick!= null) 
     { 
      this.UserControlLinkClick(this, e); 
     } 
} 

はUserControlLinkClickを制御します。

protected override void OnInit(EventArgs e) 
{ 
    MyUserControl uc = LoadControl("~/PathToUserControl.ascx"); 
    uc.UserControlLinkClick += new EventHandler(MyUserControl_UserControlLinkClick); 
} 

protected void MyUserControl_UserControlLinkClick(object sender, EventArgs e) 
{ 
    //this code will execute when the usercontrol's LinkButtonClicked event is fired. 
} 

希望がある!

0

カスタムコントロールでイベント/デリゲートを作成します。その後、あなたのページコードの背後に、イベントハンドラやサブスクライバメソッドをデリゲートに追加することができます。

Link for Events

Link for Delegates

ホープこれはあなたのユーザーコントロール内

+0

この方向で私を指摘してくれてありがとう。私はイベントや代議員を使ったことは一度もなく、詳細な回答があれば感謝します。 – DotnetDude

+0

@DotnetDude:Cognitronicはカスタムコントロールでイベントを使用する方法の例を挙げてくれました。 – jonnyb

関連する問題