2

ドロップダウン リストから項目を選択するユーティリティ メソッドがあり、選択したインデックス変更イベントをトリガーする機能を追加したいと考えています (要求された場合)。

このイベントが存在することを確認してから実行するにはどうすればよいですか?

ページコードの例:

protected void Page_Load(object sender, EventArgs e)
{
    dropDownListEditMyControl.SelectedIndexChanged += new EventHandler(dropDownListEditMyControl_SelectedIndexChanged);
    Utilities.SelectedItemInDropdown(dropDownListMyControl);
}

protected void dropDownListEditMyControl_SelectedIndexChanged(object sender, EventArgs e)
{
    // Do something special
}

ユーティリティ コード:

public static void SelectItemInDropdown(DropDownList dropDown, int? value, bool triggerChangeEvent)
    {
        if (value.HasValue)
        {
            ListItem li = dropDown.Items.FindByValue(value.Value.ToString());
            if (li != null)
            {
                dropDown.ClearSelection();
                li.Selected = true;

                if (triggerChangeEvent)
                {
                    if (dropDown.SelectedIndexChanged != null)
                    {
                        dropDown.SelectedIndexChanged(dropDown, new EventArgs());
                    }
                }
            }
        }
    }

問題は、ドロップダウンに選択したインデックス変更イベントがあるかどうかを確認してから呼び出すことです(コンパイルされません)

4

1 に答える 1

3

as としてキャストdropDownIPostBackDataHandlerて呼び出しますRaisePostDataChangedEvent

dropDownイベントハンドラがない場合は例外が発生しないので、事前に確認する必要はありません。

于 2013-07-24T16:16:01.973 に答える