Je génère une liste déroulante dans codebehind et je ne parviens pas à déclencher automatiquement l'événement selectedindexchanged. Cela fonctionne très bien lorsqu'il est placé directement dans la page ASPX, mais j'en ai besoin dans le codebehind.Liste déroulante ASP.NET dans Codebehind vs dans ASPX page
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>
Donc comme je le rends à un HTMLTexWriter, est-ce que je le rendrai à celui de Init ou Load? – Alex
Je mets tout le bloc de code dans le page_init et rien ne se passe encore – Alex
Comparez le balisage entre l'implémentation de travail (balisage) et le non-fonctionnement (code) dans Firebug ou la console de développement IE. Quelque chose est différent. –