ASP.NET Liste Déroulante dans le Code-behind vs en page ASPX

Je suis de la génération d'une liste déroulante dans le code-behind et ne peut pas obtenir de l'événement selectedindexchanged à feu automatiquement. Il fonctionne très bien lorsqu'il est mis directement dans la page ASPX, mais j'ai besoin d'être dans le code-behind.

Cela ne fonctionne pas:

var deptList = new DropDownList
    {
        ID = "deptList",
        DataSource = departments,
        DataTextField = "deptname",
        DataValueField = "deptid",
        AutoPostBack = true,
        EnableViewState = true
    };

deptList.SelectedIndexChanged += new EventHandler(deptList_SelectedIndexChanged);
deptList.DataSource = departments;
deptList.DataTextField = "deptname";
deptList.DataValueField = "deptid";

if (!IsPostBack)
    deptList.DataBind();

deptList.Items.Insert(0, new ListItem("---Select Department---", string.Empty));

writer.Write("Select a department: ");
deptList.RenderControl(writer);

mais cela fonctionne:

<asp:DropDownList ID="deptList" AutoPostBack="true" runat="server" OnSelectedIndexChanged="deptList_SelectedIndexChanged"></asp:DropDownList>

OriginalL'auteur Alex | 2010-02-17