Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2011, 07:16
Pinty
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 10 meses
Puntos: 14
Recuperar valor de dropdownlist

Hola a todos. Estoy haciendo una aplicación web y tengo un problema que juraria que nunca me habia pasado. Hace bastante tiempo que no trabajo con .NET, la verdad que creo que es una duda muy simple, busque por el foro pero no encontre nada. Bueno el tema es el siguiente.
Tengo un dropdownlist y lo que quiero es selecionar uno y borrarlo. El tema es que me coge siempre el primero, el primero es un campo vacio que yo pongo a mano, el resto de los valores del dropdownlist los cojo de una base de datos, pero selecione lo que selecione cuando le doy al boton elminiar, siempre me coge el primer campo.
Bueno a ver si con codigo se entiende mejor

Con esta funcion cargo el dropdownlist
Código ASP:
Ver original
  1. Private Sub cargardatos()
  2.         Dim ds As New DataSet
  3.         Dim adaptador As New SqlDataAdapter
  4.  
  5.         datos.Items.Clear()
  6.         cnn.Open()
  7.         adaptador.SelectCommand = cmdcargardatos
  8.         cmdcargardatos.ExecuteNonQuery()
  9.         adaptador.Fill(ds, "datos")
  10.         cnn.Close()
  11.         Me.datos.DataSource = ds
  12.         Me.datos.DataValueField = "id"
  13.         Me.datos.DataTextField = "texto"
  14.         Me.datos.DataBind()
  15.  
  16.         Me.datos.Items.Insert(0, New ListItem("Selecione un dato", 0))
  17.  
  18.         'limpiamos el dataset
  19.         ds.Tables.Clear()
  20.     End Sub

y aqui el codigo del boton eliminar
Código ASP:
Ver original
  1. Protected Sub eliminar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles eliminar.Click
  2.         If datos.SelectedValue = 0 Then
  3.             MsgBox("No has selecionado ningun dato", MsgBoxStyle.Information)
  4.             Exit Sub
  5.         End If
  6.         If MsgBox("Va a borrar un dato importante. ¿Desea continuar?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
  7.             cnn.Open()
  8.             With cmdeliminardato
  9.                 .Parameters("@id").Value = datos.SelectedValue
  10.                 .ExecuteNonQuery()
  11.             End With
  12.             cnn.Close()
  13.  
  14.             'Vuelvo a llamar a la funcion cargardatos
  15.             cargardatos()
  16.         End If
  17.     End Sub

Y tengo otra pequeña duda, la funcion cargardatos() la llamo en el load de la pagina, si os dais cuenta la vuelvo a llamar cada vez que borro un dato. No hay alguna manera de volver a recargar la pagina? y asi me ahorro estar cada poco llamando a esa funcion. Por ejemplo el elemento dropdownlist tiene la propiedad autopostback, el elemento boton no tiene algo parecido??

Muchisimas gracias a todos por adelantado.

Un cordial saludo
Pinty