请教各位   asp.net 如何制作动态三级下拉菜单

解决方案 »

  1.   

    protected void ddlProfession1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (ddlProfession1.SelectedValue)
            {
                case "IT":
                    {
                        ddlProfession2.Items.Clear();
                        ddlProfession2.Items.Insert(0,"网络安全");
                        ddlProfession2.Items.Insert(1, "入侵检测");
                    }
                    break;
                case "医疗":
                    {
                        ddlProfession2.Items.Clear();
                        ddlProfession2.Items.Insert(0,"中医针灸");
                        ddlProfession2.Items.Insert(1, "中医理疗");
                    }
                    break;
            }
        }
    //这种做法行不
      

  2.   

    CSS二级横向菜单,三级下拉菜单五款(纯CSS)
    自己去选!!!
      

  3.   

    http://www.open-open.com/ajax/ajax20080824230840.htm
      

  4.   


    Ajax 三级联动 实现分类 .NET/C#  2010-08-13 11:35:12|  分类: .NET/C# 
    |字号
     订阅
    通过控件拖动实现:
     <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <br />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table style="width:100%;">
                    <tr>
                        <td class="style1">
                            一级:<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="True" DataTextField="name" DataValueField="id" 
                               OnSelectedIndexChanged="changeFirst" AutoPostBack="true">
                                    <asp:ListItem>--请选择--</asp:ListItem>
                            </asp:DropDownList>
                        </td>
                        <td class="style2">
                            二级:<asp:DropDownList ID="ddl2" runat="server" AppendDataBoundItems="True" DataTextField="name" DataValueField="id" 
                               OnSelectedIndexChanged="changeSecond" AutoPostBack="true">
                                    <asp:ListItem>--请选择--</asp:ListItem>
                            </asp:DropDownList>
                        </td>
                        <td>
                            三级:<asp:DropDownList ID="ddl3" runat="server" DataTextField="name" DataValueField="id" >
                            </asp:DropDownList>
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
    后台CS代码
    public partial class Publish_Default2 : System.Web.UI.Page
    {
       // int pageNo = 1;
       // int pageSize = 999;
        //PageModel pageModel = new PageModel();
      private string ConnectionString = ConfigurationManager.ConnectionStrings["ConString"].ToString();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.bindDDL();
            }
        }    private void bindDDL()
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+0;//0代表一级分类
             SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl.DataSource = dt.DefalultView;
            this.ddl.DataBind();
        }
        protected void changeFirst(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(ddl.SelectedValue);
           SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+id;
            SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl2.DataSource = dt.DefalultView;//这个语句是追加语句,不是将ddl2中以前的数据删除,而是追加。
       
            ddl2.Items.Clear();//此项很重要,主要是删除ddl2中已经存在的数据,
            this.ddl2.Items.Add("---请选择---");
            ddl2.DataBind();    }
        protected void changeSecond(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(ddl2.SelectedValue);
            SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+id;
            SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl2.DataSource = dt.DefalultView;/
            ddl3.Items.Clear();
            ddl3.DataBind();
        }}Category表结构  
    id int 
    name varchar
    parentid int   
      

  5.   

    Ajax 三级联动 实现分类 .NET/C#  2010-08-13 11:35:12|  分类: .NET/C# 
    |字号
     订阅
    通过控件拖动实现:
     <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <br />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table style="width:100%;">
                    <tr>
                        <td class="style1">
                            一级:<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="True" DataTextField="name" DataValueField="id" 
                               OnSelectedIndexChanged="changeFirst" AutoPostBack="true">
                                    <asp:ListItem>--请选择--</asp:ListItem>
                            </asp:DropDownList>
                        </td>
                        <td class="style2">
                            二级:<asp:DropDownList ID="ddl2" runat="server" AppendDataBoundItems="True" DataTextField="name" DataValueField="id" 
                               OnSelectedIndexChanged="changeSecond" AutoPostBack="true">
                                    <asp:ListItem>--请选择--</asp:ListItem>
                            </asp:DropDownList>
                        </td>
                        <td>
                            三级:<asp:DropDownList ID="ddl3" runat="server" DataTextField="name" DataValueField="id" >
                            </asp:DropDownList>
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
    后台CS代码
    public partial class Publish_Default2 : System.Web.UI.Page
    {
       // int pageNo = 1;
       // int pageSize = 999;
        //PageModel pageModel = new PageModel();
      private string ConnectionString = ConfigurationManager.ConnectionStrings["ConString"].ToString();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.bindDDL();
            }
        }    private void bindDDL()
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+0;//0代表一级分类
             SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl.DataSource = dt.DefalultView;
            this.ddl.DataBind();
        }
        protected void changeFirst(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(ddl.SelectedValue);
           SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+id;
            SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl2.DataSource = dt.DefalultView;//这个语句是追加语句,不是将ddl2中以前的数据删除,而是追加。
       
            ddl2.Items.Clear();//此项很重要,主要是删除ddl2中已经存在的数据,
            this.ddl2.Items.Add("---请选择---");
            ddl2.DataBind();    }
        protected void changeSecond(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(ddl2.SelectedValue);
            SqlConnection conn = new SqlConnection(ConnectionString);
            string sql = "select id,name,parentid from category where parentid="+id;
            SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
             DataTable dt = new DataTable();
             adapter.Fill(dt);
           
            this.ddl2.DataSource = dt.DefalultView;/
            ddl3.Items.Clear();
            ddl3.DataBind();
        }}Category表结构  
    id int 
    name varchar
    parentid int   
      

  6.   

    http://mesky.net/downz/tkiekhe给你一个demo