私は、3つのボタンと7つのテキストボックスを含むusercontrolを持っています。私はLoadControlを使用してwebformでそのusercontrolをdynamiclly呼び出しています。WebControlのUserControlイベント
しかし、ここで私の問題は、私のページにクリックされた(ユーザーコントロールの)どのボタンを知っている
1.Howのですか?
2.これらのイベントを開催するには?
おかげ Kavitha
私は、3つのボタンと7つのテキストボックスを含むusercontrolを持っています。私はLoadControlを使用してwebformでそのusercontrolをdynamiclly呼び出しています。WebControlのUserControlイベント
しかし、ここで私の問題は、私のページにクリックされた(ユーザーコントロールの)どのボタンを知っている
1.Howのですか?
2.これらのイベントを開催するには?
おかげ Kavitha
ユーザーコントロールでイベントを作成し、ボタンがクリックされたときに、それを発射。したがって、メインページからこのイベントを管理することができます。
詳細情報についてはあなたが独自の分離コードファイルにユーザーコントロール上のコントロールのイベントを処理し、順番に、あなたのページの分離コードファイルで扱う得ることができ、あなたのユーザーコントロールのイベントを発生させることができEasily Raise Events From ASP.NET ASCX User Controls
をご覧ください。
最も良いことは、ユーザーコントロールがコントロールをカプセル化して意味のあるイベントを発生させることです。たとえば、「過去12ヶ月」、「Year to date」、「Custom dates」、および開始日と終了日のテキストボックスを選択するRadioButtonListを持つ日付ピッカーユーザーコントロールを作成しました。私のユーザコントロールは、単一のDateChangedイベントを公開します。これは、新しいラジオボタンが選択された場合、または「カスタム」選択が行われて入力日が変更された場合に発生します。
このように、コントロールのユーザーは、コントロールの複雑な実装について知る必要はありません。 DateChangedイベントを登録するだけです。
イベントを呼び出すのではなく、単にSelectedDateをプロパティとして公開する方が簡単だと思います。ずっと少ないコード –
日付選択が変更されたときにデータを再クエリする必要があるという事実を除いて、それは本当です。 –
ユーザーコントロール(WebUserControl1.ascx)では、あなたはそうのような役割を果たしクリックハンドラでButton1を持っていることがあります。
Event Button1Click(ByVal button As Button)
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
RaiseEvent Button1Click(sender)
End Sub
そして、あなたはそれから動的にそのように親コントロールにこれにEventHandlerのを添付することができます:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim buttonControl As WebUserControl1 = LoadControl("WebUserControl1.ascx")
AddHandler buttonControl.Button1Click, AddressOf ControlEventHandler
End Sub
Private Sub ControlEventHandler(ByVal ctl As Control)
'We now have access to this control's properties
End Sub
質問2について説明すると、もしあれば、どの言語(C#またはVB)のコード例が必要ですか? – Peter