Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Menu CSS

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    136

    Menu CSS

    Devo generare una lista con dati prelevati da una tabella gerarchica con i seguenti campi:

    ID Testo ParentID

    Ho creato due funzioni:

    codice:
    private string WriteMenu()
            {
                SqlConnection conn = new SqlConnection(");
                string sql = "Select * from Menu where ParentID = 0 order by Text asc";
                SqlCommand comm = new SqlCommand(sql, conn);
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
                StringBuilder sb = new StringBuilder();
                string verifica = string.Empty;
                sb.Append("<ul>");
                while(dr.Read())
                {
                    sb.Append("[*]");
                       sb.Append(dr["Text"].ToString());
                       sb.Append(WriteSubChildMenu(Convert.ToInt32(dr["MenuId"])));
             
                    sb.Append("");
                }
                sb.Append("[/list]");
                conn.Close();
                return sb.ToString();
                }
    e l'altra funzione è la seguente:

    codice:
     private string WriteSubChildMenu(int menuid)
            {
                SqlConnection conn = new SqlConnection);
                string sql = "Select * FROM Menu where ParentID = " + menuid;
                SqlCommand comm = new SqlCommand(sql, conn);
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
                StringBuilder sb = new StringBuilder();
               sb.Append("<ul>");
                string verifica = string.Empty;
                while (dr.Read())
                {
                    verifica = dr["Text"].ToString();
                    if (verifica.Length > 0)
                    {
                        write = true;
                        sb.Append("[*]");
                        sb.Append(dr["Text"].ToString());
                        sb.Append("");
    
                    }
                   
                }
                sb.Append("[/list]");
                conn.Close();
                if(write)
                return sb.ToString();
                else
                    return string.Empty;
            }
    L'albero viene generato correttamente però quando ci sono delle voci di primo livello con parentid = 0 vengono cmq generati 2 tag <ul>[/list]:

    codice:
     <ul>[*]Applications<ul>[*]Background[*]Details[*]Mobile Device[*]Portal[*]Web Applicaitons[*]Demo[*]Performance Tests[/list][*]Document<ul>[*]Tutorials[*]Programmers[/list][*]Download<ul>[/list][*]Product<ul>[/list][*]Support<ul>[*]FAQ[*]Forum[*]Contact Us[/list][*]test<ul>[/list][*]test1<ul>[/list][/list]
    Le voci di primo livello sono test test 1 e product


    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    136
    Adesso va...

    bastava dichiarare la variabile booleana write a livello di funzione.

    ciao

  3. #3

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