CompositeControl の一部を構成するコントロールがある場合、消費する aspx ページにイベントDropDownList
を公開するにはどうすればよいですか?SelectedIndexChanged
ありがとう
CompositeControl の一部を構成するコントロールがある場合、消費する aspx ページにイベントDropDownList
を公開するにはどうすればよいですか?SelectedIndexChanged
ありがとう
直接パススルーというもっと簡単な方法があります。
これを試して:
public event EventHandler SelectedIndexChanged
{
add { this.TargetControl.SelectedIndexChanged += value; }
remove { this.TargetControl.SelectedIndexChanged -= value; }
}
[編集] もちろん、カスタム ロジックを挿入する必要がある場合を除きます。
これがあなたがすることです。まず、次のようなイベントを宣言します。
public event EventHandler SelectedIndexChanged;
次に、内部的に、DropDownListのSelectedIndexChangedEventに接続します。イベントハンドラーで次のようにします。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.SelectedIndexChanged != null)
{
this.SelectedIndexChanged(sender, e);
}
}
実際に行っているのは、元のイベントをラップして再発生させることだけです。
編集:ブライアンルドルフの答えを参照してください。それは実際、それを行うための非常に簡単な方法です。