Custom UserControl中的SelectedIndexChanged未触发

时间:2014-05-21 06:22:05

标签: c# asp.net

我已经递交了一个旧的.Net 1.1应用程序,其中包含"使其再次运行"。我现在正在迁移这个老野兽。

开发人员已经创建了一个自定义控件,其中包含一个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,因此页面上运行的代码将失败。

请指出正确的方向。为什么这不起作用,我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

在沙盒解决方案中重建控件之后,我终于找到了一种到达EventHandler的方法。

我必须在OnLoad方法中注册SelectedItemChanged事件:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    edit_jahr.SelectedIndexChanged += new EventHandler(edit_jahr_SelectedIndexChanged);
}
老实说,我不知道为什么。如果有人可以回答&amp;详细解释一下,我愿意接受这个作为答案,而不是我自己的帖子。