+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: layout menu

  1. #1
    Post
    36

    layout menu

    Ciao ragazzi,

    sto implementando il menu e volevo sapere come faccio a creare una cosa del genere?



    cioè non riesco a creare parti tondeggianti e magari creare delle sfumature tipo foto.E poi vorrei inserire dei bottoni tondeggianti nelle root del menù .. qualcuno sa dove posso reperirle?
    Uso visual web developer 2008 express edition

    ps: posso inserire all'interno del progetto immagini non da http ?

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Ciao Panda,
    non è semplicissimo risponderti. Molto probabilmente stai facendo uso del controllo menù presente nella toolbox di VS. In tal caso possi dirti che il controllo non è assolutamente crossbrowser cioè non ti restituisce lo stesso risultato su tutti i browse. Funziona su IE, e su FF funziona solo in parte.
    Il controllo presenta una serie di proprietà come quella di poter settare il testo dell'item o quello di indicare tramite la proprietà imageurl un'immagine accanto al testo:
    codice:
    <asp:Menu ID="Menu1" runat="server" Orientation="Vertical">
      <Items>
        <asp:menuitem navigateurl="Home.aspx" 
                text="Home"
                imageurl="img\minus.jpg"
                popoutimageurl="img\minus.jpg"   
                tooltip="Home">
         </asp:menuitem>
       </Items>
    </asp:Menu>
    PS: tempo fa avevo consigliato ad un altro utente i CssAdapter (non sò se funzionano sulla versione Express di VS). Puoi vedere qui di cosa si tratta:
    http://www.asp.net/CSSAdapters/Menu.aspx

    Il tuo caso è più "complesso". Se le voci sono statiche allora puoi tranquillamente costruirti con qualsiasi programma di grafica i tuoi pulsanti come meglio credi(sfumature, arrotondamenti ecc).
    Se invece le voci sono dinamiche, nel senso che le recuperi da un db, ecc allora devi in qualche modo costruire l'html sufficiente ad ottenere quel risultato.
    Ci sono diverse techiche per ottenere dei bordi arrotondati, giusto per indicare qualche articolo:
    MODx Content Management System | Simple Rounded Corner CSS Boxes
    Nifty Corners Cube: angoli arrotondati mai così facili | Articoli Css | Css.HTML.it
    oppure tramite framework come jquery:
    jQuery Corners
    oppure con l'uso delle immagini create ad hoc per gli angoli.
    Bisogna conoscere un bel pò di cose, css, javascript ed ovviamente html.

    In entrambi i casi sia se le voci sono statiche sia se le voci sono dinamiche il controllo menù è da scartare (parare personale).
    Devi con un pò di creatività costruirti la struttura html finale che rappresenta il menù. Può essere una tabella con n righe quante sono le voci. In ogni cella inserire la formattazione che più preferisci ecc (NB: ci sono diversi modi per ottenere quel risultato).
    Spero di averti dato qualche info per procedere
    Ultima modifica di SignIn; 06-02-2009 22:26 

  3. #3
    Post
    36
    scusate ma per avere più nodi padre bisogna inserire un nuovo controllo menu e quindi anche un nuovo web.sitemap ??
    perchè se non mi sbaglio mi pare di aver letto una nota in MSDN che può esistere un solo sitemapnode principale

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Sinceramente non mi risulta o forse non ho capito la tua domanda...comunque se per esempio hai un controllo menu:
    codice:
     <asp:Menu ID="menu" runat="server" OnMenuItemDataBound="menu_MenuItemDataBound" ></asp:Menu>
    dopo aver eseguito il bind con il SiteMap:
    codice:
    //nel page load per esempio
    if (!IsPostBack)
    {
      menu.DataSource = Bind();
      menu.DataBind();
    }
    
    private SiteMapDataSource Bind()
    {
      XmlSiteMapProvider xmlSiteMap = new XmlSiteMapProvider();
      System.Collections.Specialized.NameValueCollection col= new System.Collections.Specialized.NameValueCollection(1);
      //nome del mio file
      col.Add("siteMapFile", "Web.sitemap");
      xmlSiteMap.Initialize("provider", col);
      xmlSiteMap.BuildSiteMap();
      SiteMapDataSource siteMap = new SiteMapDataSource();
      return siteMap;
    }
    puoi intervenire nell'evento MenuItemDataBound (trasformando i figli in root)
    codice:
    protected void menu_MenuItemDataBound(object sender, MenuEventArgs e)
    {
      SiteMapNode nodeMap = (SiteMapNode)e.Item.DataItem;
      if (nodeMap == nodeMap.RootNode)
        menu.Items.Remove( e.Item );
      else if (nodeMap.ParentNode == nodeMap.RootNode)
        menu.Items.Add(e.Item);
    }

  5. #5
    Post
    36
    no aspe .. io ho un menù statico ....
    esempio:

    Home
    |_ pippo _ pluto
    ( il menù lo visualizzo dinamicamente e solo home si vede nella pagina ... muovendo il mouse su home compare pippo e poi pluto)

    ora allo stesso livello di home ... vorrei mettere tipo area di sviluppo , quindi avrò :
    Home
    |_ pippo _ pluto

    Area di sviluppo
    |_ ciao _ ciao 2

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...le voci di menù si trovano in un sitemap?...postalo

  7. #7
    Post
    36
    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title="home" description="">
    <siteMapNode url="" title="pippo" description="" />
    <siteMapNode url="" title="pluto" description="" />
    </siteMapNode>
    </siteMap>

    questo è relativo ad un root

    ora per creare un nuovo root cm detto sopra come posso fare? non posso modificare in qualche modo questo codice?

  8. #8
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Con il codice che ho scritto e modificando in questo modo il sitemap:
    codice:
    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
      <siteMapNode url="" title="root" description="">
        <siteMapNode title="Home" description=""
            url="">
          <siteMapNode url="" title="pippo" description="" />
          <siteMapNode url="" title="pluto" description="" />
        </siteMapNode>
        <siteMapNode title="Home2" description=""
            url="">
          <siteMapNode url="" title="pippo2" description="" />
          <siteMapNode url="" title="pluto2" description="" />
        </siteMapNode>
      </siteMapNode>
    </siteMap>
    dovresti ottenere quanto chiesto.

  9. #9
    Post
    36
    Quote Originariamente inviato da SignIn Visualizza il messaggio
    Con il codice che ho scritto e modificando in questo modo il sitemap:
    codice:
    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
      <siteMapNode url="" title="root" description="">
        <siteMapNode title="Home" description=""
            url="">
          <siteMapNode url="" title="pippo" description="" />
          <siteMapNode url="" title="pluto" description="" />
        </siteMapNode>
        <siteMapNode title="Home2" description=""
            url="">
          <siteMapNode url="" title="pippo2" description="" />
          <siteMapNode url="" title="pluto2" description="" />
        </siteMapNode>
      </siteMapNode>
    </siteMap>
    dovresti ottenere quanto chiesto.
    ci siamo quaasi capiti.
    ho provato il codice che dici tu e mi esce
    codice:
    root __ Home__pippo___pluto
          |_Home2__pippo2__pluto2
    eliminando root io vorrei che ci fossero due root a pari livello cioè home e home2:

    Home__pippo___pluto

    Home2__pippo2__pluto2

    e quando visualizzo la pagina vedo solo home e home 2 : se vado con il cursore su home esce pippo e poi pluto , se vado su home2 esce pippo2 e poi pluto2


    grazie per la pazienza

  10. #10
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Non hai provato il mio codice ....hai solo assegnato questo sitemap al tuo menù...Se non implementi come ho fatto io l'evento(come dicevo nel mio post precedente) menu_MenuItemDataBound non vedrai mai quello che vedo io

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi