4

CompositeControl の一部を構成するコントロールがある場合、消費する aspx ページにイベントDropDownListを公開するにはどうすればよいですか?SelectedIndexChanged

ありがとう

4

2 に答える 2

11

直接パススルーというもっと簡単な方法があります。

これを試して:

    public event EventHandler SelectedIndexChanged
    {
        add { this.TargetControl.SelectedIndexChanged += value; }
        remove { this.TargetControl.SelectedIndexChanged -= value; }
    }

[編集] もちろん、カスタム ロジックを挿入する必要がある場合を除きます。

于 2008-12-18T19:57:45.290 に答える
4

これがあなたがすることです。まず、次のようなイベントを宣言します。

public event EventHandler SelectedIndexChanged;

次に、内部的に、DropDownListのSelectedIndexChangedEventに接続します。イベントハンドラーで次のようにします。

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

実際に行っているのは、元のイベントをラップして再発生させることだけです。

編集:ブライアンルドルフの答えを参照してください。それは実際、それを行うための非常に簡単な方法です。

于 2008-12-18T19:04:54.913 に答える