这是两个下拉框的前后代码,麻烦稍微详细说下怎么改 限制模式:
   <asp:DropDownList ID="ddlConMode" runat="server" AutoPostBack="True" Height="24px" OnSelectedIndexChanged="ddlConMode_SelectedIndexChanged" Width="85px">
   <asp:ListItem Value="1">运营商</asp:ListItem>
   <asp:ListItem Value="2">区域</asp:ListItem>
   <asp:ListItem Value="3">线路</asp:ListItem>
   <asp:ListItem Value="4">点位</asp:ListItem>
   </asp:DropDownList>
   限制范围:
   <asp:DropDownList ID="ddlConArea" runat="server" AutoPostBack="True" Height="24px" Width="85px" OnSelectedIndexChanged="ddlConArea_SelectedIndexChanged">
   </asp:DropDownList>        protected void Page_Load(object sender, EventArgs e)
        {
            lblUserName.Text = Session["CarrierOperator"] as string;
            SqlConnection conn = new SqlConnection(sqlConn);
            conn.Open();
            ddlConArea.SelectedIndexChanged += new System.EventHandler(ddlConArea_SelectedIndexChanged);
            if (!this.IsPostBack)
            {
                string ConMode = ddlConMode.SelectedValue;
                string sqlConMode = "";
                string CarrCode = Session["CarrierCode"].ToString();
                sqlConMode = "select 运营商名称,1 from 运营商 where 运营商代码 =" + CarrCode + "";
                SqlDataAdapter sdaConMode = new SqlDataAdapter(sqlConMode, conn);
                DataSet dsConMode = new DataSet();
                sdaConMode.Fill(dsConMode);
                ddlConArea.Items.Clear();
                for (int i = 0; i < dsConMode.Tables[0].Rows.Count; i++)
                {
                    ddlConArea.Items.Add(new ListItem(dsConMode.Tables[0].Rows[i][0].ToString(), dsConMode.Tables[0].Rows[i][1].ToString()));
                }
                string sqlAreaBelong = "select 区域名称,区域代码 from 区域 where 运营商代码 ='" + CarrCode + "'"; 
                SqlDataAdapter sdaAreaBelong = new SqlDataAdapter(sqlAreaBelong, conn);
                DataSet dsAreaBelong = new DataSet();
                sdaAreaBelong.Fill(dsAreaBelong);
                for (int i = 0; i < dsAreaBelong.Tables[0].Rows.Count; i++)
                {
                    ddlAreaBelong.Items.Add(new ListItem(dsAreaBelong.Tables[0].Rows[i][0].ToString(), dsAreaBelong.Tables[0].Rows[i][1].ToString()));
                }  
            }
        }
    protected void ddlConMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(sqlConn);
            conn.Open();
            string ConMode = ddlConMode.SelectedValue;
            string sqlConMode = "";
            string CarrCode = Session["CarrierCode"].ToString();
            if (ConMode == "1")
            {
                sqlConMode = "select 运营商名称,1 from 运营商 where 运营商代码 =" + CarrCode + "";
            }
            if (ConMode == "2")
            {
                sqlConMode = "select 区域名称,2 from 区域 where 运营商代码 =" + CarrCode + "";
            }
            if (ConMode == "3")
            {
                sqlConMode = "select 线路名称,3 from 线路 join 区域 on 区域.区域代码 = 线路.区域代码 where 区域.运营商代码 =" + CarrCode + "";
            }
            if (ConMode == "4")
            {
                sqlConMode = "select 点位名称,4 from 机器配置 where 运营商代码 =" + CarrCode + "";
            }
            SqlDataAdapter sdaConMode = new SqlDataAdapter(sqlConMode, conn);
            DataSet dsConMode = new DataSet();
            sdaConMode.Fill(dsConMode);
            ddlConArea.Items.Clear();
            for (int i = 0; i < dsConMode.Tables[0].Rows.Count; i++)
            {
                ddlConArea.Items.Add(new ListItem(dsConMode.Tables[0].Rows[i][0].ToString(), dsConMode.Tables[0].Rows[i][1].ToString()));
            }
            conn.Close();
        }

解决方案 »

  1.   

    用JS写吧。要联动的话都是JS比较方便的。例如 用JQ
      

  2.   

    什么叫做“怎么改”?不太明白你到底想解决什么 bug 问题?!代码我还是能不看就不看的,毕竟它需要花费大量时间。通常你能怎样描述问题、决定了你会得到什么样的回答。你如果懒得写分析和说明,也就往往就不会得到想要的答案。所谓“二级联动”,对于你这种 web 服务器端编程,也就是在 ddlConMode_SelectedIndexChanged 去重新绑定 ddlConArea 的数据源。你把一个下拉框设置搞明白了,那么设置两个下拉框也就明白了。如果有数据问题,你应该抛开控件的干扰,而单独调试“数据”。把握两点:
    1. 抛开控件,只关心具体的数值,用数值是否一致来说话,不要谈控件。
    2. 用 vs 进行断点调试会不会呢?如果会就在提问时先贴出你的具体代码和变量的调试来说明。
      

  3.   

    http://blog.csdn.net/laolaowhn/article/details/2033510 AjaxControlToolkit 加 webservice 实现DropDownList来联动