有个分类表(如手表、香水、箱包等),还有个品牌表(如古驰、巴宝莉等),一个品牌可以在多个类型下
在选择分类后,出现分类下面的品牌,注意数据都是从数据库读取的

解决方案 »

  1.   

    你的问题是什么 ?
    可以ajax做 。
      

  2.   


    先加载第一个下拉列表的数据给这个下拉列表。。onchange事件中提交到一般处理程序或后台通过第一个下拉列表选中项ID取得第二个下拉列表的数据绑定
      

  3.   


    http://blog.csdn.net/porschev/archive/2010/10/15/5943579.aspx上面是个二级联动。。用AJAX获取的示例。。
      

  4.   

                BuildDw();
                dw_Bclass.Attributes.Add("onChange", "changelocation(document.getElementById('" + dw_Bclass.ClientID + "').options[document.getElementById('" + dw_Bclass.ClientID + "').selectedIndex].value)");
        #region 生成类型选择js
        private void BuildDw()
        {        string str = "";
            string Column = "";
            if (!IsAdmin())
            {            DataSet dsc = db.GetDataSet("Select * From Sclass Where isUse=1");
                foreach (DataRow Item in dsc.Tables[0].Rows)
                {
                    if (Session["MLegal"].ToString().Contains(Item["ColumnNum"].ToString())) Column = Column + "'" + Item["ColumnNum"].ToString() + "'" + ",";
                }
                if (Column.Length > 1) Column = Column.Remove(Column.Length - 1);
                str = " and ColumnNum in(" + Column + ")";
            }        string sql = "Select * From Sclass where isuse=1" + str +" order by bclassid ,id";
            DataSet ds = db.GetDataSet(sql);
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language = \"JavaScript\">\r");
            sb.Append("var onecount;\r");            
            int count = 0;
            sb.Append("subcat = new Array();\r");
            for (int i = 0; i < ds.Tables[0].Rows.Count; ++i)
            {
                sb.Append("subcat[").Append(count.ToString()).Append("] = new Array(\"").Append(ds.Tables[0].Rows[i]["name"].ToString()).Append("\",\"");
                sb.Append(ds.Tables[0].Rows[i]["bclassid"].ToString()).Append("\",\"").Append(ds.Tables[0].Rows[i]["id"].ToString()).Append("\");\r");
                ++count;
            }        sb.Append("function changelocation(locationid){\r");
            sb.Append("document.getElementById(\"").Append(dw_Sclass.ClientID).Append("\").length = 0 ;\r");
            sb.Append(" var locationid=locationid;\r");
            sb.Append("for (i=0;i < " + count + "; i++)\r");
            sb.Append("{\r");
            sb.Append("if (subcat[i][1] == locationid)\r");
            sb.Append("{ \r");
            sb.Append("document.getElementById(\"" + dw_Sclass.ClientID + "\").options[document.getElementById(\"" + dw_Sclass.ClientID + "\").length]=");
            sb.Append("new Option(subcat[i][0], subcat[i][2]);\r");
            sb.Append("}\r");
            sb.Append("}\r");
            sb.Append("}\r");
            sb.Append("</script>\r");
            this.Page.RegisterStartupScript("dw", sb.ToString());
        }
        #endregion
      

  5.   

    调用数据库二级联动AJAX也可以using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page 
    {
      protected void Page_Load(object sender, EventArgs e)
      {
      if (!this.IsPostBack)
      {
      //绑定省
      SqlConnection con = new SqlConnection("server=.;database=dropDownTest;integrated security=true;");
      con.Open();
      SqlCommand cmd = new SqlCommand("select * from provience", con);
      SqlDataReader sdr = cmd.ExecuteReader();
      this.ddlprovince.DataSource = sdr;
      this.ddlprovince.DataTextField = "proName";
      this.ddlprovince.DataValueField = "proID";
      this.ddlprovince.DataBind();
      sdr.Close();
      //绑定市
      SqlCommand cmdcity = new SqlCommand("select * from city where proID=" + this.ddlprovince.SelectedValue, con);
      SqlDataReader sdr1 = cmdcity.ExecuteReader();
      this.ddlcity.DataSource = sdr1;
      this.ddlcity.DataTextField = "cityName";
      this.ddlcity.DataValueField = "cityID";
      this.ddlcity.DataBind();
      sdr1.Close();
      con.Close();
      }
         }
      protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
      {
      string proID = this.ddlprovince.SelectedValue;
      SqlConnection con = new SqlConnection("server=.;database=dropDownTest;integrated security=true;");
      con.Open();
      SqlCommand cmd = new SqlCommand("select*from city where proID=" + proID, con);
      SqlDataReader sdr= cmd.ExecuteReader();
      this.ddlcity.DataSource = sdr;
      this.ddlcity.DataTextField = "cityName";
      this.ddlcity.DataValueField = "cityID";
      this.ddlcity.DataBind();
      sdr.Close();
      con.Close();  }
    }
    ddlprovince 为省 dropdownlist IDddlcity 为市 dropdownlist IDproName proID为表provience中的字段 也就是省的cityName cityID为市city表中的字段 是市的
    ddlprovince_SelectedIndexChanged为省的dropdownlist 选中事件 触发绑定 数据库 Demo 完整