我有一个实用程序方法,它将从下拉列表中选择一个项目,并且我想添加触发所选索引更改事件(如果请求)的功能。
如何验证此事件是否存在然后执行?
示例页码:
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());
}
}
}
}
}
问题是检查下拉列表是否具有所选索引已更改事件然后调用它(它不会编译)
答案 0 :(得分:3)
将dropDown
投射为IPostBackDataHandler
并致电RaisePostDataChangedEvent
。
如果dropDown
没有事件处理程序,则不会出现异常,因此您不必事先检查它。