Frage

Was finden Sie das beste Menü für eine ASP.Net 2.0 bieten - 3.5 Web-Anwendung? Vorschläge müssen ASP.Net Kontrollen nicht besonders, aber könnten auch andere Menüs, die auch in einer ASP.Net Web-Anwendung arbeiten.

Ich würde für die Vorschläge wie Optionen zu sein, die Gebühren nicht den Kauf oder Lizenz benötigen. Open Source Vorschläge wären noch besser.

War es hilfreich?

Lösung

Ich benutze jQuery Superfish: http://users.tpg.com.au / j_birch / plugins / superfish / . Sehr zu empfehlen durch andere auch.

Andere Tipps

Ich habe festgestellt, dass die flexibelste ist CSS zu verwenden, um eine ungeordnete Liste wie folgt stylen:

<div id="nav_main" >
<ul>
  <li id="current">Button 1</li>
  <li><a href="#">Button 2</a></li>
  <li><a href="#">Button 3</a></li>
  <li><a href="#">Button 4</a></li>
  <li><a href="#">Button 5</a></li>
</ul>
</div> 

Sie werden viele CSS Wege finden, diese Art von Liste mit Hover-Hintergrundbilder stylen, etc.

Nun, wenn Sie Webforms verwenden und Sie möchten Ihre Sitemap verwenden, dann würde ich vorschlagen, einen Repeater und nicht mit der Menüsteuerung verwenden. Sie werden auf diese Weise die beste Kontrolle Ihrer Erstellung Ihrer Liste haben.

Und falls Sie ASP.NET MVC verwenden, können Sie eine foreach auf Ihrer Sitemap tun, um Ihre Liste zu erstellen.

Das ist natürlich nur für einfache Menüs, aber es kann erweitert werden, umständliche Menüs zu schließen. Ich habe das folgende CSS-Stil-Menü sehr gut sein: http: //www.lwis.net/free-css-drop-down-menu/

YUI Tasten oder Menüsteuerung (funktioniert mit bestehenden HTML):

http://developer.yahoo.com/yui/examples/button /btn_example07.html

Eine ASP.NET-Bibliothek, die diese Kontrollen sehr schön Wraps, veröffentlicht im Dezember 2008:

http://www.codeplex.com/YUIAspNet/

JQuery sucker Menü funktioniert durch die Verwendung von ul, li Elemente:

http://be.twixt.us/jquery/suckerFish.php

Ich mag auch ungeordnete Listen erstellen. Es ermöglicht der Designer mit den Menüs flexibel sein. Sie können ihre eigenen js + CSS-Lösung zu erstellen verwenden Dropdown-Menü oder Stil es schön für statische Menüs. Das gleiche HTML kann leicht die linke Hand wird, über die Spitze, Drop-Down oder sogar eine vollständige Website Karte mit CSS Änderungen.

Zu diesem Sinne, wie ich in einer hierarchischen Datenstruktur, die die Website von Kartendaten zu speichern und eine rekursive Lambda es verwenden, zu erzeugen. Ein Beispiel finden Sie in diesem kleinen Konsole app unten mit seinem Ausgang.

Ausgabe html

<li><a href="/">First</a><li><a href="/firstsub.aspx">FirstSub</a></li><li><a hr
ef="/secondsub.aspx">SecondSub</a></li></li><li><a href="/second.aspx">Second</a
></li>

die Quelle c #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SiteMapDemo
{
    class MenuItem
    {
        public Guid ID {get; set;}
        public Guid? ParentID{get;set;}
        public string Name { get; set; }
        public string Path { get; set; }
        public int Rank { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<MenuItem> menu = new List<MenuItem>(new[]{
                new MenuItem{ID = Guid.NewGuid(), Name = "First", ParentID=null, Path="/", Rank=0},
                new MenuItem{ID = Guid.NewGuid(), Name = "Second", ParentID=null, Path="/second.aspx",Rank=1},
            });
            menu.AddRange(new[] { 
                new MenuItem{ID = Guid.NewGuid(), Name = "FirstSub", ParentID=menu[0].ID, Path="/firstsub.aspx",Rank=0},
                new MenuItem{ID = Guid.NewGuid(), Name = "SecondSub", ParentID=menu[0].ID, Path="/secondsub.aspx",Rank=1},
                });
            Func<List<MenuItem>, Guid?, string> renderMenu = null;
            renderMenu = (menus, Parent) =>
            {
                var sub = menus.Where(m => m.ParentID == Parent).OrderBy(s=>s.Rank).ToList();
                if (sub.Count > 0)
                {
                    StringBuilder sb = new StringBuilder();
                    sub.ForEach(s => { sb.Append(String.Format("<li><a href=\"{0}\">{1}</a>{2}</li>", s.Path, s.Name, renderMenu(menus, s.ID))); });
                    return sb.ToString();
                }
                return "";
            };
            Console.Write(renderMenu(menu, null));
            Console.ReadLine();
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top