Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: DRopDownList (Vb.net)

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39

    DRopDownList (Vb.net)

    Salve a tutti
    Ho un problema con l'oggetto dropdownlist.

    Eseguo il codice di seguito riportato ma mi da il seguente errore
    "INDICE OLTRE I LIMITI DELLA MATRICE"

    No riesco a capire l'errore

    Al momento che apro la pagina mi dovrebbe caricare i dati e quindi riempire l'oggetto

    Private Sub ListGruppo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListGruppo.Load


    Dim objCmd As New SqlCommand("SELECT gruppo FROM DOC GROUP BY gruppo ORDER BY GRUPPO", ObjCnn)
    Dim objR As SqlDataReader = objCmd.ExecuteReader
    Dim firstrow As Boolean = True
    Do While objR.Read
    ListGruppo.Items.Add(New ListItem(objR(1).ToString()))
    'If firstrow Then
    ' TxtData.Text = objR(5).ToString()
    ' 'txtCategoryDescription.Text = objR(2).ToString()
    ' firstrow = False
    'End If
    Loop
    'End While
    objR.Close()

    End Sub

    grazie

  2. #2
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    objR dovrebbe avere un solo elemento objR(0)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39
    Ti ringrazio era quello il problema.

    Ma se io ho 2 DropDownList, cioè il secondo dipende dal primo?

    dDovrei una volta selezionato il primo attivare il secondo a darmi l'elenco in dipendenza del primo.

    Esempio:
    Il primo è composto da:
    1°Frutta;
    2°Carne;
    3°Pesce

    Selezionando il primo nel secondo deve apparire:
    Mele
    Pere
    Banane
    ecc

    E' un esempio stupido ma forse rende l'idea

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    se questo può esserti di aiuto:
    codice:
    Dim elenco1 As String() = {"elenco2", "elenco3"}
        Dim elenco2 As String() = {"mela", "Pera"}
        Dim elenco3 As String() = {"sardina", "sogliola"}
    
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim i As Integer
            Select Case Me.ComboBox1.SelectedItem
                Case "elenco2"
                    For i = 0 To UBound(elenco2)
                        Me.ComboBox2.Items.Add(elenco2(i))
                    Next
                Case "elenco3"
                    For i = 0 To UBound(elenco3)
                        Me.ComboBox2.Items.Add(elenco3(i))
                    Next
            End Select
           
        End Sub
    
        Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim i As Integer
            For i = 0 To UBound(elenco1)
                Me.ComboBox1.Items.Add(elenco1(i))
            Next
        End Sub
    Nel tuo case basta che passi il parametro della query

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39
    Perdonami:
    Perchè hai dichiarato le tre variabili "Elenco"?

    Se non ho capito male nella ComboBox1_SelectedIndexChanged dovrei effettuare la seconda select passandogli l'indice della prima combobox?
    Non so può essere utile sapere che l'accesso è a una singola tabella composta da 3 campi

    1° id
    2° Gruppo
    3° Tipo

    nella prima DropDown va inserito il Gruppo

    nella seconda DropDown va inserito il tipo che dipende dal gruppo

    Non mi è molto chiaro, scusa ma sono alle prime armi.

  6. #6
    Su load del form popoli la prima lista con la select dei valori principali (Frutta, Verdura, Carne)
    Poi su evento click della lista fai una seconda select per popolare la seconda lista, select che ovviamente dipenderà dal valore selezionato es.
    codice:
    Private Sub ListGruppo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListGruppo.Load
    
    Dim objCmd As New SqlCommand("SELECT DISTINCT gruppo FROM DOC ORDER BY GRUPPO", ObjCnn) 
    
    '...
    'istruzioni per popolare la ListGruppo
    '...
    
    End Sub
    codice:
    Private Sub ListGruppo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListGruppo.Click
    
    Dim objCmd2 As New SqlCommand("SELECT tipo FROM DOC WHERE gruppo='" & ListGruppo.SelectedItem & "' ORDER BY tipo", ObjCnn) 
    
    '...
    'istruzioni per popolare la ListTipo
    '...
    
    End Sub
    *** Rachele TI AMO DA MORIRE!!! ***

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39
    Grazie mille)

    Ma perchè però non trovo l'evento click di ListGruppo?

  8. #8
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    Originariamente inviato da fexo
    Perdonami:
    Perchè hai dichiarato le tre variabili "Elenco"?

    Se non ho capito male nella ComboBox1_SelectedIndexChanged dovrei effettuare la seconda select passandogli l'indice della prima combobox?
    Non so può essere utile sapere che l'accesso è a una singola tabella composta da 3 campi

    1° id
    2° Gruppo
    3° Tipo

    nella prima DropDown va inserito il Gruppo

    nella seconda DropDown va inserito il tipo che dipende dal gruppo

    Non mi è molto chiaro, scusa ma sono alle prime armi.
    Io ho dichiarato gli elenchi perchè ho preso i dati da array e non da un database, ma il concetto è lo stesso, infatti alla fine del messaggio ho scritto che per te basta passare il parametro della query, o l'intera query, secondo come hai impostato il lavoro

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39
    Ho inserito tutto il codice
    (Dim objCmd2 As New SqlCommand("SELECT tipo FROM DOC WHERE gruppo='" & ListGruppo.SelectedItem & "' ORDER BY tipo", ObjCnn)

    nel ListGruppo_SelectedIndexChanged perchè non ho trovato l'evento click del drop

    ma mi da errore (mi sottolinea) la select e mi dice "L'operatore "&" non èp definito per i tipi "STring"

    che suggerimento hai?

    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    39
    Risolto funzione a metà voleva il .value

    Ma il problema è che adesso nella seconda drop mi da tutti i campi indipendentemente da quello ch eseleziono prima perchè secondo te?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.