发个例子给你,下拉筐的数据是静态绑定的,只是为了实现你要的这个效果的原理,至于从数据库中读数据只要稍做修改就OK了。代码如下:ddl.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddl.aspx.cs" Inherits="ddl" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" EnableViewState="False" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
            <asp:ListItem Selected="True">请选择</asp:ListItem>
            <asp:ListItem>张三</asp:ListItem>
            <asp:ListItem>李四</asp:ListItem>
            <asp:ListItem>王二</asp:ListItem>
            <asp:ListItem>麻子</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" EnableViewState="False" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged">
            <asp:ListItem Selected="True">请选择</asp:ListItem>
            <asp:ListItem>张三</asp:ListItem>
            <asp:ListItem>李四</asp:ListItem>
            <asp:ListItem>王二</asp:ListItem>
            <asp:ListItem>麻子</asp:ListItem>
        </asp:DropDownList></div>
    </form>
</body>
</html>ddl.aspx.cs:using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;public partial class ddl : System.Web.UI.Page
{    ListItem[] list = new ListItem[5];
    protected void Page_Load(object sender, EventArgs e)
    {
      
        
            for (int i = 0; i < 5; i++)
            {                list[i] = DropDownList1.Items[i];
            }
        
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {        DropDownList2.Items.Clear();
        if(DropDownList1.SelectedValue=="请选择")
        {
            DropDownList2.Items.AddRange(list);        }
        if(DropDownList1.SelectedValue=="张三")
        {
            for (int i = 0; i < 5; i++)
            {
                if (list[i].Value != "张三")
                {
                    DropDownList2.Items.Add(list[i]);
                }
            }
        }
        if (DropDownList1.SelectedValue == "李四")
        {
            for (int i = 0; i < 5; i++)
            {
                if (list[i].Value != "李四")
                {
                    DropDownList2.Items.Add(list[i]);
                }
            }
        }    }
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {        DropDownList1.Items.Clear();
        if (DropDownList1.SelectedValue == "请选择")
        {
            DropDownList2.Items.AddRange(list);        }
        if (DropDownList2.SelectedValue == "张三")
        {
            for (int i = 0; i < 5; i++)
            {
                if (list[i].Value != "张三")
                {
                    DropDownList1.Items.Add(list[i]);
                }
            }
        }
        if (DropDownList2.SelectedValue == "李四")
        {
            for (int i = 0; i < 5; i++)
            {
                if (list[i].Value != "李四")
                {
                    DropDownList1.Items.Add(list[i]);
                }
            }
        }    }
}

解决方案 »

  1.   

    考虑使用JS脚本去处理,如果是只根据1个DropDownList的选择值去改变其他下拉框的数据,可以看下面的代码,如果不是你可以把下面的代码改改:
    <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeFile="Default.aspx.cs" Inherits="product_Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript" src="../js/StarScore.js"></script>
        <script type="text/javascript">
            var objDdl1,objDdl2,ddl1Value,ddl2Value;
            var removeObjValue,removeObjText;//将上次删除的项存储起来,以便选择值改变后添加到其他下拉框里去
            window.onload = function()
            {
                objDdl1 = getObj("DropDownList1");
                objDdl2 = getObj("DropDownList2");
                getCurrentItem();
                removeObj(ddl1Value ,objDdl2 );
                //如果还有其它下拉框
                //removeObj(ddl1Value ,objDdl3 );//objDdl3 = getObj("DropDownList3");
            }
            function removeObj(value,objDdl)
            {
                for(var i=0;i<objDdl.options.length;i++)
                {
                    if(value == objDdl.options[i].value)
                    {
                        removeObjValue = value;
                        removeObjText = objDdl.options[i].text;
                        objDdl.options[i] = null;
                        objDdl.options[0].selected = true;
                        break;
                    }
                }
            }
            function addObj(objDdl)
            {
                objDdl.options[objDdl.options.length] = new Option(removeObjText, removeObjValue);
            }
            function ddlChange(objValue)
            {
                if(objValue != ddl1Value)
                {
                    addObj(objDdl2);
                    //如果还有其它下拉框
                    //addObj(ddl1Value ,objDdl3 );
                    removeObj(objValue,objDdl2); 
                    //removeObj(ddl1Value ,objDdl3 );
                    getCurrentItem();               
                }
            }
            function getCurrentItem()
            {
                ddl1Value = objDdl1.value;
                ddl2Value = objDdl2.value;
            }
            function getObj(id)
            {
                return document.getElementById(id);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:DropDownList ID="DropDownList1" onchange="ddlChange(this.value)" runat="server">
            </asp:DropDownList>
            <asp:DropDownList ID="DropDownList2" runat="server">
            </asp:DropDownList>
            
        </form>
    </body>
    </html>CS:
    DataTable dt = new DataTable( );
            dt.Columns.Add( "id" , typeof( int ) );
            dt.Columns.Add( "name" , typeof( string ) );
            for( int i = 1 ; i <= 10 ; i++ ) 
            {
                DataRow row = dt.NewRow( );
                row[0] = i;
                row[1] = "Name" + i;
                dt.Rows.Add( row );
            }
            DropDownList1.DataSource = DropDownList2.DataSource = dt;
            DropDownList1.DataTextField = DropDownList2.DataTextField = "Name";
            DropDownList1.DataValueField = DropDownList2.DataValueField = "id";
            DropDownList1.DataBind( );
            DropDownList2.DataBind( );
      

  2.   

    注意:如果使用JS处理,那么你要在后台获得修改后的值,就要用Request[DropDownListID]取值
    参考下面2篇文章:
    http://www.cnblogs.com/doll-net/archive/2007/04/03/697940.html
    http://www.cnblogs.com/doll-net/archive/2007/04/02/697383.html