Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2011, 10:20
igonfil
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 7 meses
Puntos: 1
Combos dependientes en vb.net

Hola a tod@s. Estoy intentando crear un combo dependientes alimentados por xml(uno de los combox sería el de Contienetes y al seleccionar el combo rellenaria otro combo pero con los paises relacionados con dicho continente) ¿Cómo puedo crear el Combos dependientes?
Muchas gracias
El codigo que tengo es el siguiente:
Código PHP:
Imports System.IO
Imports System
.Xml
Imports ViajesDatos
Public Class LeerXML

    
Public Function RecojeInfoFichero(ByVal stRuta As String) As AñadirXML_EE

        
'Abro fichero xml y leo info 
        '
Dim stRuta As String stRutaGNUPG Me.stNomFichDATTRA
        Dim boOk 
As Boolean True

        
'FVH 20/10/11 Inicializo los arrays
        '
aBic_Xml = New ArrayList
        
'aFiNI_Xml = New ArrayList
        '
aFeND_Xml = New ArrayList

        Dim objInfoDown 
As New AñadirXML_EE
        objInfoDown
.Pais = New ArrayList
        objInfoDown
.Continente = New ArrayList
        Dim objPais 
As New AñadirXML_EE
        objInfoDown
.IdContinente = New Integer
        objPais
.Pais = New ArrayList
        
Try
            
Dim textRead As New XmlTextReader(stRuta)
            
textRead.WhitespaceHandling WhitespaceHandling.Significant

            
While (textRead.Read)

                
Select Case textRead.NodeType

                    
Case XmlNodeType.Element

                        Select 
Case textRead.Name
                            
Case "continente"
                                'Atributos del fichero


                                '
objInfoDown.Pais Path.GetFileNameWithoutExtension(stRuta)

                                
objInfoDown.Continente.Add(textRead.GetAttribute("nombreCont"))

                            Case 
"Paises"
                                
Select Case textRead.GetAttribute("idCont")
                                    Case 
1
                                        
'objInfoDown.Pais.Add(textRead.GetAttribute("nombre"))
                                        objPais.Pais.Add(textRead.GetAttribute("nombre"))
                                        '
objInfoDown.IdContinente textRead.GetAttribute("idCont")
                                    Case 
2
                                        objInfoDown
.Pais.Add(textRead.GetAttribute("nombre"))
                                
End Select



                        End Select

                        
'    Case XmlNodeType.EndElement
                        '        
Select Case textRead.Name
                        
'            Case "song" : Exit While
                        '                'Fin del fichero
                        '        
End Select
                End Select

            End 
While

        Catch 
ex As Exception
            
'fichLog.EscribeLog("RecojeInfoFichero: " & ex.Message)
            boOk = False
        End Try

        '
textRead Nothing
        
Return objInfoDown
    End 
Function

    

End Class 

Código PHP:
Imports ViajesDatos
Imports ViajesNegocio
Public Class Form1
    Dim oIdContinente 
As New Integer
    Dim oLeerXML 
As New LeerXML
    Dim objInfoDown 
As New AñadirXML_EE
    Dim objPais 
As New AñadirXML_EE
    
Private Sub BtnAñadir_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BtnAñadir.Click
        Dim oAñadirXML 
As New AñadirXML_EE
        oAñadirXML
.FechaInicio CDate(TxtFInicio.Text)
        
AñadirXML.CrearCarpeta(oAñadirXML)
        
'AñadirXML.CargarDatos(oAñadirXML)



       


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        objInfoDown = oLeerXML.RecojeInfoFichero("DatosXML\DatosXML.xml")
        '
rellenamos el combo con los datos del xml(llamamos al objeto)
        
CbContinente.DataSource objInfoDown.Continente
        CbPais
.DataSource objInfoDown.Pais
        CbPais
.Enabled False

        oIdContinente 
objInfoDown.IdContinente











    End Sub

    
    
Private Sub CbContinente_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CbContinente.SelectedIndexChanged

        CbContinente
.Enabled True
        objPais 
oLeerXML.RecojeInfoFichero("DatosXML\DatosXML.xml")


        
rellenamos el combo con los datos del xml(llamamos al objeto)

        
CbContinente.DataSource objInfoDown.Continente
        CbPais
.DataSource objPais.Pais
      


    End Sub
End 
Class 
XML:
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<Contienentes>
 <continente idCont="0" nombreCont="Europa">
     <Paises idPais="1" idCont="0" nombre="España">
        <Provincia nombrePais="Madrid">
            <lugar>
                 <nombre>Alcorcón</nombre>
            </lugar>
        </Provincia>
    </Paises>    
 </continente> 
 <continente  idCont="1" nombreCont="América">
     <Paises idPais="2" idCont="1" nombre="Perú">
        <Provincia nombrePais="Lima">
            <lugar>
                 <nombre>Cuzco</nombre>
            </lugar>
        </Provincia>
    </Paises>    
 </continente>
      <!-- <continente id="3" nombreCont="África"/>
       <continente id="4" nombreCont="Antártida"/>
       <continente id="5" nombreCont="Europa"/>
       <continente id="6" nombreCont="Oceanía"/>-->
</Contienentes>