Каково лучшее меню для приложения ASP.NET?

Я не думаю, что вы вызываете функцию access_db() в любом месте

5
задан codewright 8 January 2009 в 05:55
поделиться

4 ответа

Я использую Суперрыбу jQuery: http://users.tpg.com.au/j_birch/plugins/superfish/. Настоятельно рекомендованный другими также.

1
ответ дан 14 December 2019 в 04:49
поделиться

Я нашел, что самое гибкое должно использовать CSS для моделирования незаказанного списка как это:

<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> 

Вы найдете много CSS способами разработать этот вид списка с фоновыми изображениями при наведении курсора и т.д.

Теперь, если бы Вы используете Веб-формы, и Вы хотите использовать свою карту сайта, затем я предложил бы использовать Повторитель и НЕ использовал бы управление меню. Вы будете иметь большую часть контроля своей генерации Вашего списка этот путь.

Точно так же при использовании ASP.NET MVC можно сделать foreach на карте сайта для создания списка.

Это, конечно, только для простых меню, но это может быть расширено для включения более сложных меню. Я нашел, что следующее разработанное CSS меню очень хорошо: http://www.lwis.net/free-css-drop-down-menu/

4
ответ дан 14 December 2019 в 04:49
поделиться

Кнопки YUI или средства управления меню (работает с существующим HTML):

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

Библиотека ASP.NET, которая переносит эти средства управления очень приятно, выпущенный в декабре 2008:

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

Меню suckerfish jQuery, работы при помощи ул., элементов лития:

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

2
ответ дан 14 December 2019 в 04:49
поделиться

Мне также нравится создавать незаказанный списки. Это позволяет разработчику быть гибким с меню. Они могут использовать свое собственное js+css решение создать выпадающие меню или разработать его приятно для статических меню. Тот же HTML может легко стать левой рукой через главное, выпадающее, или даже полная карта сайта с изменениями CSS.

К тому примечанию мне нравится хранить данные карты сайта в hierarchal структуре данных и использовать рекурсивную лямбду для генерации его. Поскольку пример видит это маленькое консольное приложение ниже с его выводом.

выходной 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>

источник 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();
        }
    }
}
1
ответ дан 14 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: