Mi DropDownList está correctamente rellenado pero cuando selecciono un item siempre devuelve el primero

2810 vistas

Este problema es muy común. En un 99% de las ocasiones, el problema proviene del postback: si se ha rellenado el DropDownList en el "Page_Load" de la página, el código correcto es:



csharp
  1. private void Page_Load(System.object sender, System.EventArgs e)
  2. {
  3.     if (!Page.IsPostBack)
  4.     {
  5.       // código para rellenar el dropdownlist
  6.     }
  7. }



El error que se comete frecuentemente es el olvidar el "if (!page.IsPostBack)". Seleccionando un objeto del DropDownList, la página se recarga al realizar un postback, por lo que volverá a pasar por "Page_Load" reiniciando el DropDownList. Con el código propuesto, especificamos que no hace falta reinicializarlo en caso de PostBack y de esta manera recuperamos el valor seleccionado.