SelectedIndexChanged在自定义UserControl中未触发
本文关键字:UserControl 自定义 SelectedIndexChanged | 更新日期: 2023-09-27 18:04:16
我收到了一个旧的。net 1.1应用程序,上面写着"make it run again"。我现在正在迁移这头老野兽。
开发人员创建了一个自定义控件,其中包含一个html表行<tr>
和4个<td>
元素。
在其中一个里面,有一个<asp:Dropdownlist>
:
<asp:DropDownList id="edit_jahr" runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="edit_jahr_SelectedIndexChanged">
</asp:DropDownList>
方法edit_jahr_SelectedIndexChanged
看起来像这样:
protected void edit_jahr_SelectedIndexChanged(object sender, System.EventArgs e)
{
JahrChangedEventArgs args = new JahrChangedEventArgs((int)ViewState["jahr"],Convert.ToInt32(edit_jahr.SelectedValue));
OnJahrChange(args);
this.Jahr=args.NeuesJahr;
}
当前的问题是:OnSelectedIndexChanged事件没有触发,因此没有添加新的Usercontrol,因此在页面上运行的代码将失败。
请给我指一下正确的方向。在沙箱解决方案中重建控件后,我终于找到了一种到达EventHandler的方法。
我必须在OnLoad方法中注册SelectedItemChanged事件:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
edit_jahr.SelectedIndexChanged += new EventHandler(edit_jahr_SelectedIndexChanged);
}
老实说,我不知道为什么。如果有人能回答&我愿意接受这个答案,而不是我自己的帖子