发个例子给你,下拉筐的数据是静态绑定的,只是为了实现你要的这个效果的原理,至于从数据库中读数据只要稍做修改就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]);
}
}
} }
}
<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]);
}
}
} }
}
<%@ 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篇文章:
http://www.cnblogs.com/doll-net/archive/2007/04/03/697940.html
http://www.cnblogs.com/doll-net/archive/2007/04/02/697383.html