在前一个下拉列表的SelectIndexChenge事件中,根据选择重新绑定后一个下拉列表框

解决方案 »

  1.   

    public void changecode(object objsender,EventArgs e)
    {
    //在此处放置连动下拉菜单的过程
    string varsql = "select * from productname where cid=" + this.DropDownList1.SelectedItem.Value;
    //myconnclass myclass =new conndbdll.myconnclass();
    SqlDataReader myreader=myclass.ExecuteReader(varsql);
    DropDownList2.DataSource = myreader;
    DropDownList2.DataTextField = "name";
    DropDownList2.DataValueField = "cid";
    DropDownList2.DataBind();
    }
      

  2.   

    给你写一个小例子(test.aspx):<%@Import Namespace="System.Data"%>
    <script language="C#" runat="server">
    void Page_Load(object src,EventArgs e){
    if(!Page.IsPostBack){
    for(int i=2;i<=20;i+=2){
    ddl1.Items.Add(new ListItem(i.ToString()));
    }
    BindDDL();
    }
    }void ChangeSecondDDL(object src,EventArgs e){
    BindDDL();
    }void BindDDL(){
    ddl2.Items.Clear();
    int i=int.Parse(ddl1.SelectedItem.Value);
    for(int j=0;j<i;j++){
    ddl2.Items.Add(new ListItem("选项"+j.ToString()));
    }
    }
    </script>
    <HTML><HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="Webdiyer">
    </HEAD><BODY>
    <form runat="server">
    <asp:DropDownList runat="server" id="ddl1" OnSelectedIndexChanged="ChangeSecondDDL" AutoPostBack=true/>
    <asp:DropDownList runat="server" id="ddl2"/>
    </form></BODY></HTML>
      

  3.   

    以上各位写的是后台代码控制,需要回传,也可以直接使用javascript控制联动下拉列表,不需要经过服务器再次处理。
      最有代表性的是动网的搜索栏,你可以去看看,好好捉摸一下。
      

  4.   

    后代码中在前一个下拉列表的SelectIndexChenge事件中,编写代码根据选择Item的value值重新获取后一个下拉列表框的值然后绑定
      

  5.   

    重新绑定后,再把前面下拉框的AutoPostBack属性设为true
    这样就可以了