找到一个无极下拉导航栏,但是想了很久,都没想到如何把它转化成后台通过点鼠标就可以修改添加删除的动态程序。效果在http://www.cdthink.com/nav可以看到,源代码和css文件都是可以下载的。请各位给小弟指导指导,我有两个问题:
1、如何设计表
2、如何将表记录真确输出给个思路就可以了,谢谢。<ul id="nav">
<li class="top"><a href="index.html" class="top_link"><span>首页</span></a></li>
<li class="top"><a href="#nogo2" id="products" class="top_link"><span class="down">解决方案</span></a>
<ul class="sub">
<li><a href="#nogo3">市政工程</a></li>
<li><a href="#nogo7">园林、绿化</a></li>
<li><a href="#nogo19">地产应用</a></li>
<li><a href="#nogo20">城镇开发</a></li>
<li><a href="head.htm" target="_blank">开发</a></li>
</ul>
</li>
<li class="top"><a href="#nogo22" id="services" class="top_link"><span class="down">服务</span></a>
<ul class="sub">
<li><a href="#nogo23">设计</a>
<ul>
<li><a href="#nogo28">1</a>
<ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li>
<li><a href="#nogo24">铺装</a></li>
<li><a href="#nogo25">售前</a></li>
<li><a href="#nogo26">售后</a></li>
</ul>
</li>
<li class="top"><a href="#nogo27" id="contacts" class="top_link"><span class="down">样板工程</span></a>
<ul class="sub">
<li><a href="#nogo28" class="fly">城市</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li>

<li><a href="#nogo29" class="fly">室内</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li> <li><a href="#nogo49" class="fly">园林</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li> <li><a href="#nogo50" class="fly">小区</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li> <li><a href="#nogo50" class="fly">别墅</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li> <li><a href="#nogo51" class="fly">广场</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li> <li><a href="#nogo50" class="fly">景点</a><ul>
<li><a href="#nogo28">1</a></li>
<li><a href="#nogo28">2</a></li>
<li><a href="#nogo28">3</a></li>
<li><a href="#nogo28">4</a></li>
<li><a href="#nogo28">5</a></li>
</ul></li>
</ul>
</li>
<li class="top"><a href="#nogo53" id="shop" class="top_link"><span class="down">工艺</span></a>
<ul class="sub">
<li><a href="#nogo54">压模</a></li>
<li><a href="#nogo55">喷涂</a></li>
<li><a href="#nogo56">酸着色</a></li>
</ul>
</li>
</ul>

解决方案 »

  1.   

    数据库可以这样设计基础表
    ID 名称 级别
    关系表
    父ID 下一级ID查跟节点是这样查
    select 基础表.* from 基础表  where 级别=1
    查询子集时这样查
    select 基础表.* from 关系表  left outer join 基础表 on 关系表.父ID=基础表.ID where 父ID=@父ID
      

  2.   

    不好意思,错了
    查询子集时应该是这样查 
    select 基础表.* from 关系表  left outer join 基础表 on 关系表.下一级ID=基础表.ID where 父ID=@父ID 
      

  3.   

    建议用datatable一次性把数据全取出来,通过遍历datatable(操作内存)来操作
    发一个我自己写的给你参考一下Modelusing System;
    namespace WZMM.Model
    {
        /// <summary>
        /// 实体类ClassModel 。(属性说明自动提取数据库字段的描述信息)
        /// </summary>
        public class ClassModel
        {
            public ClassModel()
            { }
            #region Model
            private int _id;
            private int _classid;
            private string _name;
            private bool _isdelete;
            private bool _state;
        
                 public int id
            {
                set { _id = value; }
                get { return _id; }
            }
      
            public int classid
            {
                set { _classid = value; }
                get { return _classid; }
            }        public string name
            {
                set { _name = value; }
                get { return _name; }
            }        public bool isdelete
            {
                set { _isdelete = value; }
                get { return _isdelete; }
            }        public bool state
            {
                set {
                    _state = value;
                    
                    }
                get { return _state; }
            }
            #endregion Model
        }
    }        public static List<ClassModel> Select()
            {
                DataTable dt = GetTable();
                List<ClassModel> list = new List<ClassModel>();
                ClassModel model = new ClassModel();
                model.id = 0;
                model.name = "===请选择类别===";
                list.Add(model);
                OrderSelect(dt, list, 0, "|-");
                dt.Clear();
                return list;
            }        static DataTable GetTable()
            {
                DataTable dt = new DataTable();
                DataSet ds = new DataSet();
                Database.RunProc("CLASS_Select", out ds);
                dt = ds.Tables[0];
                return dt;
            }        static void OrderSelect(DataTable dt, List<ClassModel> list, int classid, string strTop)
            {
                DataRow[] rows = dt.Select("classid=" + classid);
                for (int i = 0; i < rows.Length; i++)
                {
                    ClassModel model = new ClassModel();
                    model.id = int.Parse(rows[i]["id"].ToString());
                    model.name = strTop + rows[i]["name"].ToString();
                    list.Add(model);
                    string str = "  " + strTop;
                    int id = int.Parse(rows[i]["id"].ToString());
                    OrderSelect(dt, list, id, str);
                }
            }表:
    CREATE TABLE [dbo].[classes] (
    [id] [int] IDENTITY (1, 1) NOT NULL 0,
    [classid] [int] NOT NULL 0,
    [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL '',
    [isdelete] [bit] NOT NULL 0,
    [state] [bit] NOT NULL 1
    ) ON [PRIMARY]
    GO
      

  4.   

    5楼的朋友,谢谢提示,xml效率肯定比读数据库高,我试试用xml6楼的朋友,小弟比较初级,代码暂未看懂,继续研究中,先谢了
      

  5.   

    试验了几次,但是都在输出的时候出问题,不管是用数据库也好,xml也好
    读到数据然后输出,先输出第一级,然后第二级,第三级......比如用for吧,第一层输出第一级,二层二级.....但是这样就不能做成多级的
    请各位再给指导指导输出方法,万分感谢。