Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.Net] - Identificare la voce di una treeview

    Ciao ragazzi io ho una treeview che popolo in questo modo:

    Cateogoria1
    ......Utente1
    ......Utente2
    ......Utente3
    Categoria2
    ......Utente30
    ......Utente31

    ecc ecc!

    Le categorie le prendo da una tabella del mio database (che contiene tutte le categorie)
    Mentre gli utenti dalla tabella apposita che contiene tutti gli utenti (i quali hanno un campo correlato idCat che è collegato in relazione con il campo ID della tabella categorie).

    Sin qui tutto semplice...

    il problema è che io vorrei assegnare a ogni nodo l'id che quella voce ha nel database!
    Per esempio se categoria1 a ID=20 io vorrei poter assegnare questo valore e poterlo gestire dopo in modo da identificare sia le categorie che gli utenti in modo univoco!

    Si può fare?

    Per popolare la treeview ho buttato giù questo:

    codice:
    Dim sql As String = "SELECT * FROM categorie ORDER BY nomeCat ASC"
            Dim DA As New OleDb.OleDbDataAdapter(sql, cn)
            Dim DS As New DataSet
            DA.Fill(DS, "Categorie")
            DA = Nothing
    
            sql = "SELECT * FROM contatti ORDER BY ragSocCont ASC"
            DA = New OleDb.OleDbDataAdapter(sql, cn)
            DA.Fill(DS, "Contatti")
            DA = Nothing
    
            For Each categoria As DataRow In DS.Tables("Categorie").Rows
                Dim mioNodo As New TreeNode
                mioNodo = treeCont.Nodes.Add(categoria("nomeCat").ToString)
                For Each contatto As DataRow In DS.Tables("Contatti").Rows
                    If contatto("catCont") = categoria("idCat") Then
                        mioNodo.Nodes.Add(contatto("ragSocCont"))
                    End If
                Next
            Next

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Niente succede!
    Era per far vedere come popolo la treeview! Il problema nasce dopo!
    Quando seleziono una voce (sia essa categoria o utente) e devo recuperarne l'id che ho sul database!

    Con le combobox usavo una classe che simulava un itemdata ma con la treeview non funziona!

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    E dov'è che assegni l'ID al nodo?
    A me pare che non lo fai...

    Nel metodo Add dovresti indicare anche l'ID, oltre che al testo.

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Gibra oggi non mi leggi con attenzione eh!

    il problema è che io vorrei assegnare a ogni nodo l'id che quella voce ha nel database!
    Ho usato il condizionale proprio perchè non so come assegnarlo!

    Ho visto che se passo 2 argomenti alla funzione ADD mi inserisce il primo come Key e il secondo come Testo ma non so come usarli sinceramente...ne se son quello che cerco io! (una sorta di itemdata)

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Veronica80
    Gibra oggi non mi leggi con attenzione eh!
    No no, io ti leggo con molta attenzione.
    E sto cercando in tutti i modi di stimolarti a 'studiare' con più attenzione.
    Ma vedo che non 'cogli'


    Originariamente inviato da Veronica80
    Ho usato il condizionale proprio perchè non so come assegnarlo!
    Quando dopo Add digiti la paresentesi, cosa ti mostra l'intellisense?

    Originariamente inviato da Veronica80
    Ho visto che se passo 2 argomenti alla funzione ADD mi inserisce il primo come Key e il secondo come Testo ma non so come usarli sinceramente...ne se son quello che cerco io! (una sorta di itemdata)
    Appunto. Devi inserire il Key ed il testo.
    Come non sai usarli? Basta inserirli.

    codice:
    mioNodo.Nodes.Add(contatto("ID"), contatto("ragSocCont"))
    Comunque la tua routine ha un problemino..
    Devi prima aggiungere le Categorie, e solo dopo aggiungere i Contatti, perchè quando vai ad aggiungere un Contatto non è detto che sia già presente la Categoria. Pensaci...


  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    allora...
    come vedi ci sono 2 cicli! Il primo cicla sulle categorie il secondo (interno al primo) cicla su tutti i contatti appartenenti a quella categoria! Sinceramente non mi pare ci sia possibilità di errore :/

    Cmq il problema qui è sta cavolo di treeview...io non riesco proprio a usarla...Popolarla è semplice è il dopo che mi sta facendo impazzire...

    Io la key la sto impostando....ma da dove cavolo la riprendo dopo? Ti ripeto Gì non stai capendo cosa chiedo secondo me! O forse (più probabile ) son io che lo sto chiedendo male :P

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ok! Ho risolto così:

    codice:
    dim mioNodo as New treeNode
    mioNodo.text="Nome visualizzato"
    mioNodo.name="Secondo Valore"
    mioNodo.tag="Terzo valore"
    miaTreeView.Nodes.add(mioNodo)

    Così assegno 2 valori nascosti a ogni nodo che richiamo con la proprietà apposita!

    (esempio mioNodo.name).


    Adesso però ho riscontrato un altro problema (non so se sia un bug).

    Se ciclo i figli di un nodo per rimuoverli tutti a un certo punto ne salta uno (ricicla su uno già rimosso come se ci fosse ancora!)

    Il codice che sto usando è molto semplice...per quello ho pensato a un bug!
    Eccolo qui:

    codice:
    for each nodoFiglio as TreeNode in nodoPadre.nodes
    nodoFiglio.remove
    next
    Fate una prova!

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Veronica80
    allora...
    come vedi ci sono 2 cicli! Il primo cicla sulle categorie il secondo (interno al primo) cicla su tutti i contatti appartenenti a quella categoria! Sinceramente non mi pare ci sia possibilità di errore :/
    Sì, ok, hai ragione, avevo male interpretato io.
    E' che alle 3 del mattino dovrei dormire, invece di rispondere sui forum.


  10. #10
    Non vedo dove sia il problema

    Hai dimostrato di conoscere la proprietà Tag, usala
    E' anche facile se utilizzata in combinazione con Add. Essendo infatti Add una funzione che restituisce il nodo che hai creato, puoi direttamente da quella linea impostare il Tag del nodo con l'ID che ti serve.


    Potrebbe andare come soluzione?
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

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.