将事件分配给Repeater控件内的自定义控件

2 c# asp.net

我有一个Repeater控件,它的一些单元格中包含一个包含DropDownList的UserControl.在Repeater控件的ItemDataBound事件中,我将事件分配给DropDownList,如下所示:

protected void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)  
{  
...  
MyControl myControl = (MyControl)e.Item.FindControl("MyControl01");  
myControl.DataSource = myObject;  
myControl.DataBind();  
myControl.DropDownList.SelectedItemChange += MyMethod_SelectedIndexChanged;  
myControl.DropDownList.AutoPostBack = true;  
....  
}  

protected void MyMethod_SelectedIndexChanged(object sender, EventArgs e)  
{  
//Do something.  
}
Run Code Online (Sandbox Code Playgroud)

事件永远不会发生.我需要帮助.

Ken*_*ing 6

您的事件未在PostBack中引发,因为您的事件处理程序尚未附加(仅当您的转发器是数据绑定时,它仅在页面生命周期的迭代期间附加).

如果您在标记中以声明方式附加事件处理程序,例如:

<asp:Repeater ID="Repeater1" runat="server">
     <ItemTemplate>
         <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" />
    </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

然后在PostBacks期间调用您的事件处理程序.