Foros del Web » Programación para mayores de 30 ;) » .NET »

Combos dependientes en vb.net

Estas en el tema de Combos dependientes en vb.net en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/11/2011, 10:20
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 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>
  #2 (permalink)  
Antiguo 21/11/2011, 10:45
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Combos dependientes en vb.net

¿Ninguna ayudita?Si no es de esta forma alguien me puede comertar otra forma de poder hacerlo. Muchas gracias
  #3 (permalink)  
Antiguo 23/11/2011, 10:38
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Combos dependientes en vb.net

Bueno le he añadido a mi código una función pero uncluso con el if y el select case me recoge todos los datos del nodo Paises del XML. Ando un poco perdido.

Código PHP:
    Public Function RecojePais(ByVal stRuta As StringByVal Combo As String) As AñadirXML_EE
        Dim ObjCombo 
As New AñadirXML_EE
        ObjCombo
.Pais = New ArrayList
        ObjCombo
.Continente = New ArrayList
        
'Dim textCombo As New XmlTextReader(stRuta)
        '
textCombo.WhitespaceHandling WhitespaceHandling.Significant
        Dim objInfoDown 
As New AñadirXML_EE
        objInfoDown
.Pais = New ArrayList
        objInfoDown
.Continente = New ArrayList
        Dim objPais 
As New AñadirXML_EE
        objPais
.IdContinente = New Integer
        objPais
.Pais = New ArrayList

        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"))
                            
objPais.IdContinente textRead.GetAttribute("idCont")
                        Case 
"Paises"


                            'objInfoDown.Pais.Add(textRead.GetAttribute("nombre"))

                            Select Case objPais.IdContinente
                                Case Combo
                                    objPais.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
        Return 
ObjCombo
    End 
Function 

Etiquetas: combos, dependientes, net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:57.