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

Discussione: Popolare ListBox

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376

    Popolare ListBox

    buonasera vi spiego il problemino.

    C'è una tabella nel db con vari gruppi

    GruppoA
    >Livorno, Pisa, Milano

    GruppoB
    >Lucca, Treviso
    e così via....

    e un'altra tabella con le varie città (le relazione è un campo IDGruppo).


    Ho due ListBox: nella prima, visualizzo tutti i Gruppi (A, B, C, ecc.).
    Vorrei che nella seconda ListBox, fossero visualizzate le città appartenenti ai Gruppi selezionati dalla prima ListBox.

    Ho provato in vari modi ma ottenendo solo errori.Come posso procedere? grazie!

    L'ambiente è VB e VisualStudio2005

  2. #2
    Ciao.
    Se ci fai vedere cosa hai provato .... ragioniamo su qualcosa di concreto!!!

    Facci sapere...
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    codice:
    Protected Sub btnVedi_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVedi.Click
            
    
            Dim i As Integer
                For i = 0 To ListBox2.Items.Count - 1
                    If ListBox2.Items(i).Selected = True Then
                        SqlDataSource2.SelectCommand = "SELECT * FROM citta WHERE IDGruppo IN ('"+gruppo+"')"
                    End If
                Next
            End If
        End Sub
    ecco, la variabile Gruppo nella select non saprei come associarla ai gruppi che seleziono nella ListBox1.
    Col codice postato riesco a vedere solo le città di un Gruppo, benchè selezioni anche più di un Gruppo.

  4. #4
    Seguendo la tua logica ..... il codice deve essere così:

    codice:
     Dim i As Integer
            For i = 0 To ListBox2.Items.Count - 1
                If ListBox2.Items(i).Selected = True Then
                    SqlDataSource2.SelectCommand = "SELECT * FROM citta WHERE IDGruppo IN ('" + ListBox2.Items(i).Value + "')"
                End If
            Next
    Facci sapere....
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    ho fatto delle prove.
    Quello che hai postato tu va bene, ma solo nella seconda ListBox2 che ho, cioè quelle che effettivamente prende i valori (tutte le città) dai gruppi selezionati (ListBox1) e li inserisce nel db.

    In pratica, vorrei ottenere il risultato che i gruppi selezionati dalla prima ListBox, vadino a formare una stringa con i GruppoID uniti da una virgola. Questo serve alla successiva SELECT per la clausola IN(1,2,3...ecc)

  6. #6
    Non c'ho capito un H.

    La richiesta iniziale era ....
    Ho due ListBox: nella prima, visualizzo tutti i Gruppi (A, B, C, ecc.).
    Vorrei che nella seconda ListBox, fossero visualizzate le città appartenenti ai Gruppi selezionati dalla prima ListBox.
    Cosa fai ..... cambi le carte in tavola ...adesso?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    lo so mi son espresso male. Chiedo venia. Ricapitoliamo.

    Ho ListBox1 multipla in cui, con una semplice SELECT dal db, mostro i nomi dei Gruppi (gruppoA, gruppoB ecc.) e i rispettivi GruppoID (1,2,3 ecc...)

    In base ai gruppi che seleziono col mouse, cliccando su btnVedi vorrei popolare una seconda ListBox2 con in nomi delle città che appartengono ai gruppi scelti.

    In pratica, la secoda Select (quella che popola la seconda ListBox2) dovrebbe essere una cosa tipo:

    select * from citta where GruppoID in (1,2,3....)

    Non riesco ad ottenere la stringa da dare in pasto alla clausola IN.

  8. #8
    Intendi una cosa così??
    codice:
     Protected Sub btnVedi_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVedi.Click
            Dim i As Integer
            For i = 0 To ListBox1.Items.Count - 1
                If ListBox1.Items(i).Selected = True Then
                    SqlDataSource2.SelectCommand = "SELECT * FROM citta WHERE IDGruppo = " + ListBox1.Items(i).Value
                    Exit For
                End If
            Next
            i += 1
            For a As Integer = i To ListBox1.Items.Count - 1
                If ListBox1.Items(a).Selected = True Then
                    SqlDataSource2.SelectCommand += " OR IDGruppo = " + ListBox1.Items(a).Value
                End If
            Next
        End Sub
    Facci sapere...
    Ciao

  9. #9
    Penso che tu voglia ottenere quanto indicato nel link sottostante

    http://www.asp.net/AJAX/AjaxControlT...gDropDown.aspx

    Utilizza Ajax, è molto elegante e puoi utilizzare il codice di esempio
    http://www.softgens.com

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    Originariamente inviato da Jeremy75
    Intendi una cosa così??
    sì, perfetto. Funziona! grazie! posso aggiungere anche un order by? ho provato con
    IDGruppo = " + ListBox1.Items(i).Value + " order by campo
    ma in entrambi i casi dava errore.


    @softgens: ottimo esempio il tuo ma per ora è oltre la mia esperienza. grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.