如何实现导航栏的功能
如何实现导航栏的功能,差不多就像csdn社区左侧那种,点击大类,小类就在下面列出来。   
 最好是有代码,没有的话讲点思路也好。
------解决方案--------------------用asp.net2.0自带的treeview控件啊
------解决方案--------------------控件. 搜索  树形控件
------解决方案--------------------用数据库记录节点也行 用XML文件也行 给你个例子吧 
 sql: 
 --------------------------------- 
  ChildNodeID ChildNodeName  ParentID 
 	1	a	 
 	2	b	 
 	3	a1	1 
 	4	a2	1 
 	5	b1	2 
 	6	a11	3 
 C#代码 
 --------------------------------------------------- 
     protected void Page_Load(object sender, EventArgs e) 
     { 
         if (!this.IsPostBack) 
         { 
             this.NodeBind();//页面加载时解析数据库绑定TreeNode根节点 
             this.DisPanel(true);//显示或不显示 
         } 
     }   
     #region//数据库连接字符串 
     public void conString() 
     { 
         string conStr =  "server=.;uid=sa;pwd=;database=Demo "; 
         con = new SqlConnection(conStr); 
     } 
     #endregion   
     #region//页面加载时绑定TreeNode根节点 
     public void NodeBind() 
     { 
         this.tvadd.Nodes[0].ChildNodes.Clear();//清空TreeView中所有节点 
         this.tvadd.Nodes[0].Expanded = true;//设置根节点为展开形式 
         this.AddChildNode( "NULL ",this.tvadd.Nodes[0]); 
     } 
     #endregion   
     #region//递归解析数据库中节点并绑定在TreeView控件上 
     ///  <summary>  
     /// 递归解析数据库中节点并绑定在TreeView控件上 
     ///  </summary>  
     ///  <param name= "sqltj "> 要解析库这个节点归属于哪个父节点 </param>  
     ///  <param name= "tn "> 要添加下一级节点的父节点 </param>  
     public void AddChildNode(string sqltj,TreeNode tn) 
     { 
         string sql =  "select * from AddNodes where ParentID ";//查询该父节点下还有无子节点SQL语句 
         if (sqltj ==  "NULL ") 
         { 
             sql +=  " IS NULL ";//也就是说是根节点下面的第一级子节点 
         } 
         else 
         { 
             sql +=  "= " + sqltj;//查询sqltj下有无子节点 
         }           
         DataTable dt = this.dtDataBind(sql); 
         if (dt.Rows.Count == 0)//说明此节点下无子节点 
         { 
             return;//退出 
         } 
         else 
         { 
             for (int i = 0; i  < dt.Rows.Count; i++)//循环DataTable表中子节点记录 
             { 
                 TreeNode tnchild = new TreeNode();//创建新的子节点 
                 tnchild.Text = dt.Rows[i][1].ToString();//为新建子节点的文本赋值 
                 tnchild.Value = dt.Rows[i][1].ToString();//为新建子节点的Value赋值 
                 tnchild.Expanded = true;//设置为不展开节点 
                 tn.ChildNodes.Add(tnchild);//添加此节点的下一级子节点 
                 //递归调用,一直往下直到添加完这一级下面的所有子节点为止,再转到下一个父节点,并添加所有此父节点下面的所有子节点 
                 //i代表DataTable表中循环记录,0代表取得这个记录的ID值,为下面继续检查这个ID下是否还有子目录 
                 //tnchild递归传递给下一次调用此方法,此时如果这个节点下还有子节点,它便成为父节点,对它下面的子节点进行添加 
                 this.AddChildNode(dt.Rows[i][0].ToString(),tnchild); 
             } 
         } 
     } 
     #endregion 
 ----------------------------------------
------解决方案--------------------XML: 
 --------------------------------------------------- 
  <?xml version= "1.0 " encoding= "utf-8 " ?>  
  <school>  
    <class name= "classone ">  
      <student id= "1 ">  
        <name id= "tom " sex= "boy " />  
      </student>  
      <student id= "2 ">  
        <name id= "jey " sex= "boy " />  
      </student>