nyasan / SI-ASA

reporsitorio PAV2
0 stars 0 forks source link

Selección DropDownList #2

Open alejandraBeltramen opened 10 years ago

alejandraBeltramen commented 10 years ago

Hay problemas para identificar la selección de un elemento del DropDownList ("ddl" en adelante). El problema me surgió en la clase Alumno en los ddl de TipoDocumento del alumno, madre y padre como así también en el ddl de Nivel de Estudio. En el momento de hacer el alta del nuevo Alumno, debuggeando, me encontraba con que los valores que toma son incorrectos. Si se usa el método ddl.SelectedIndex() debería obtener el índice del elemento seleccionado, el cual correspondería al id_tipoDocumento, pero NO obtiene ese índice, obtiene siempre el índice 0 (y en la base de datos, no hay ningún tipo de documento con id_tipoDocumento = 0). Si se usa el método ddl.SelectedItem() obtengo el item 0. Y así sucesivamente.... es decir, no me toma la selección. Probé con autoPostBack = true en el control asp.net ddl, pero esto genera que apenas uno seleccione un elemento del ddl, se vuelva a cargar la página y se pierda la selección.

nyasan commented 10 years ago

El selectedIndex te devuelve el indice de la posicion del elemento en la lista, comenzando desde el 0. Es decir, que si esta en primera posicion, su indice va a ser 0.

Para que devuelva el valor de id_tipoDocumento es necesario usar el metodo SelectedValue ya que esta pensado para retornar el valor que pongamos como ValueText. Con eso deberia quedar solucionado.

nicoaaguirre commented 10 years ago

Solucionado ---> El problema era que cargarCombo(ddl_TipoDoc, 1); cargarCombo(ddl_TipoDocMadre, 1); cargarCombo(ddl_TipoDocPadre, 1); cargarCombo(ddl_NivelEstudio, 0);

Estaban fuera del !isPostback, entonces al hacer click en guardar entraba en Page_load y volvia a poner todo en el primer elemento y así siempre va a quedar seleccionado "Elige una opcion" , la solucion es meterlo dentro del !isPostback y por la rama del else del if q pregunta si viene desde consulta, ya que de ser así debería dejar el que trae en la consulta.

Esta muy lleno de cosas inecesarias, imagino yo que habrán sido "purebas" para salir del error, así q voy a revisar y borrar todo lo q realmente no haga falta, teniendo cuidado de no sacar algo q sea importante. Tambien me hago cargo del consultar, editar , bue ese issue