Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/02/2006, 03:48
Mitico
 
Fecha de Ingreso: marzo-2003
Mensajes: 85
Antigüedad: 21 años, 10 meses
Puntos: 1
Hola imanol22

lo que deberías de hacer es a la hora de cargar las familias añadir una condición para que sólo se seleccionen aquellas del tipo que seleccionaste en el primer dropdownlist

Sub llenar_familia()
Dim dr As SqlClient.SqlDataReader
Dim cmd As SqlClient.SqlCommand
Dim str As String
Dim sql As String
str = "server=(local);database=TECNIPESA;trusted_connect ion=yes"
cn = New SqlClient.SqlConnection(str)

sql = "Select distinct kcRUT_FAMILIA from RUTAS Where kcRUT_TIPO=" & ddlist.SelectedItem.Text()
cmd = New SqlClient.SqlCommand(sql, cn)
cn.Open()
dr = cmd.ExecuteReader()
While dr.Read()
ddlist2.Items.Add(New ListItem(dr.Item("kcRUT_FAMILIA")))
End While


End Sub


Luego capturar del evento del primer dropdownlist cuando cambia la selección y ahí mandar cargar de nuevo el segundo dropdownlist

Private Sub ddlist_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlist.SelectedIndexChanged
llenar_familia()
End Sub


Otro pequeño consejo es que no llenes los dropdownlist recorriendo el datareader, sino:
dr = cmd.ExecuteReader()
ddlist2.DataSource=dr
ddlist2.DataTextField="kcRUT_FAMILIA"
'ddlist2.DataValueField="" <-- el que corresponda si procede
ddlist2.DataBind()


Espero que todo esto te sirva y te funcione.

Un saludo