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
Private Sub cargardatos() Dim ds As New DataSet Dim adaptador As New SqlDataAdapter datos.Items.Clear() cnn.Open() adaptador.SelectCommand = cmdcargardatos cmdcargardatos.ExecuteNonQuery() adaptador.Fill(ds, "datos") cnn.Close() Me.datos.DataSource = ds Me.datos.DataValueField = "id" Me.datos.DataTextField = "texto" Me.datos.DataBind() Me.datos.Items.Insert(0, New ListItem("Selecione un dato", 0)) 'limpiamos el dataset ds.Tables.Clear() End Sub
y aqui el codigo del boton eliminar
Código ASP:
Ver original
Protected Sub eliminar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles eliminar.Click If datos.SelectedValue = 0 Then MsgBox("No has selecionado ningun dato", MsgBoxStyle.Information) Exit Sub End If If MsgBox("Va a borrar un dato importante. ¿Desea continuar?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then cnn.Open() With cmdeliminardato .Parameters("@id").Value = datos.SelectedValue .ExecuteNonQuery() End With cnn.Close() 'Vuelvo a llamar a la funcion cargardatos cargardatos() End If 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