2014-05-21 43 views
0

我已经递过一个旧的.Net 1.1应用程序,并带有“让它再次运行”的字样。我现在正在迁移这个老兽。CustomIndexControl中的SelectedIndexChanged没有触发

开发人员创建了一个自定义控件,其中包含一个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事件不点火,为此没有添加新的用户控件,因此页面上运行的代码将失败。

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

+1

下拉是绑定在!IsPostBack块吗? – Adil

+0

尝试在'Page_Load'事件中击中断点。 – Bharadwaj

+0

奇怪。 Page_Load方法的断点永远不会到达。 – Marco

回答

0

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

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

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    edit_jahr.SelectedIndexChanged += new EventHandler(edit_jahr_SelectedIndexChanged); 
} 

我不知道为什么,真的。如果有人可以回答&详细解释这一点,我愿意接受这个答案,而不是我自己的帖子。

相关问题