一般执行DropDownList事件

时间:2013-07-24 16:01:17

标签: c# asp.net

我有一个实用程序方法,它将从下拉列表中选择一个项目,并且我想添加触发所选索引更改事件(如果请求)的功能。

如何验证此事件是否存在然后执行?

示例页码:

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());
                    }
                }
            }
        }
    }

问题是检查下拉列表是否具有所选索引已更改事件然后调用它(它不会编译)

1 个答案:

答案 0 :(得分:3)

dropDown投射为IPostBackDataHandler并致电RaisePostDataChangedEvent

如果dropDown没有事件处理程序,则不会出现异常,因此您不必事先检查它。