想实现一个关联功能,在1个ddl里选择【省份】,在另一个ddl里显示相应的【市区】。
和注册里的功能差不多的。高手帮忙啊!

解决方案 »

  1.   

    联动吧,到CSDN文档区去搜索一下。有很多
      

  2.   

    你详细说说,是要不刷新的吗,这个代码就可以,你也可以留下邮件地址我给你个demo
    刷新联动效果
    以下为页面代码:<form id="Form1" method="post" runat="server">
    <asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
    <asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    //以XML求取数据
    function XmlPost(obj)
    {
      var svalue = obj.value;
      var webFileUrl = "?brc_id=" + svalue;
      var result = "";
      var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
      xmlHttp.open("POST", webFileUrl, false);
      xmlHttp.send("");
      result = xmlHttp.responseText;
      
      if(result != "")
      {
        document.all("DropDownList2").length=0;
        var piArray = result.split(",");
        for(var i=0;i<piArray.length;i++)
        {
          var ary1 = piArray[i].toString().split("|");
          //alert(ary1[0].toString());
          document.all("DropDownList2").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
        }
      }
      else
      {
        alert(result);
      }
    }
    //-->
    </SCRIPT>    
    </form>以下为后台代码:private System.Data.OleDb.OleDbConnection conn;private DataTable get_dt(string sql)
    {
      string connstr = "Provider=MSDAORA.1;Password=aqjc;User ID=aqjc;Data Source=aqjc";
      this.conn = new OleDbConnection(connstr);
      this.conn.Open();
      OleDbCommand myOleDbCommand = new OleDbCommand(sql,this.conn);
      OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);  DataSet myDataset = new DataSet();
      try
      {
        myData.Fill(myDataset);
      }
      catch(Exception ex)
      {
        throw ex;
      }  this.conn.Close();
      return myDataset.Tables[0];  
    }private void Page_Load(object sender, System.EventArgs e)
    {
      string brc_id = this.Request.QueryString["brc_id"];
      if(brc_id + "a" != "a")
      {
        this.down2_bind(brc_id);
      }  if(!this.IsPostBack)
      {
        this.down1_bind();
      }
    }/// <summary>
    /// 返回第2个下拉框需要的值给xmlhttp
    /// </summary>
    /// <param name="brc_id"></param>
    private void down2_bind(string brc_id)
    {
      string mystr = "";
      string sql = "select brc_id,brc_name from asm_branch where brc_parentid = '" + brc_id + "'";
      DataTable mytab = this.get_dt(sql);  if(mytab.Rows.Count != 0)
      {
        for(int i=0;i<mytab.Rows.Count;i++)
        {
          mystr += "," + mytab.Rows[i][0].ToString() + "|" + mytab.Rows[i][1].ToString();
        }
        mystr = mystr.Substring(1);
      }
      this.Response.Write(mystr);
      this.Response.End();
    }/// <summary>
    /// 绑定第一个下拉框
    /// </summary>
    private void down1_bind()
    {
      string sql = "select brc_id,brc_name from asm_branch where brc_level = '1'";
      DataTable mytab = this.get_dt(sql);
      this.DropDownList1.DataSource = mytab;
      this.DropDownList1.DataValueField = "brc_id";
      this.DropDownList1.DataTextField = "brc_name";
      this.DropDownList1.DataBind();
      this.DropDownList1.Attributes.Add("onchange","XmlPost(this);");
    }
      

  3.   

    http://www.cnsdn.com.cn/inc/show.asp?id=60
      

  4.   

    private void ListCity()
    {
    this.City.Items.Clear();
    this.City.DataSource=ListCity();
    this.City.DataValueField="value";
    this.City.DataTextField="text";
    this.City.DataBind();
    }
    private void ListCounty(string OrganizationBaseID)
    {
    this.County.Items.Clear();
    this.County.DataSource=ListCounty();
    this.County.DataValueField="PersonID";
    this.County.DataTextField="FullName";
    this.County.DataBind();
    }
    private void City_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    if(City.SelectedValue!="")
    {
    ListCounty(City.SelectedValue);
    ddlCounty_SelectedIndexChanged(this,e);
    }
    }
    设置City的属性AutoPostBack="True"