首先分别做三个下拉列表

<body>
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"></asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>
</form>
</body>

建类:China实体类

public China()
{ }
private string code; public string Code
{
get { return code; }
set { code = value; }
}
private string name; public string Name
{
get { return name; }
set { name = value; }
}
private string prentcode; public string Prentcode
{
get { return prentcode; }
set { prentcode = value; }
}

数据访问类:

public class ChinaData
{
SqlConnection conn = null;
SqlCommand cmd = null;
public ChinaData()
{
conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
cmd = conn.CreateCommand();
}
public List<China> Select(string pcode)
{
cmd.CommandText = "select * from ChinaStates where ParentAreaCode=@pcode";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@pcode", pcode); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); List<China> list = new List<China>(); if (dr.HasRows)
{
while (dr.Read())
{
China data = new China();
data.Code = dr[].ToString();
data.Name = dr[].ToString();
data.Prentcode = dr[].ToString(); list.Add(data);

}

}

conn.Close();

return list;

}

}

 

.cs后台代码

首先数据绑定:

if (!IsPostBack)
{
//调用方法绑定数据
Bind(DropDownList1,new ChinaStatesData().Select("")); Bind(DropDownList2, new ChinaStatesData().Select(DropDownList1.SelectedValue)); Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));
}
//委托
DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;
DropDownList2.SelectedIndexChanged += DropDownList2_SelectedIndexChanged;
//造方法:
private void Bind(DropDownList ddl, List<ChinaStates> list)
{
ddl.DataSource = list;
ddl.DataTextField = "AreaName";
ddl.DataValueField = "AreaCode";
ddl.DataBind();
}
//SelectedIndexChanged事件
void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Bind(DropDownList2, new ChinaStatesData().Select(DropDownList1.SelectedValue));//填充市
Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));//填充区
}
void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));//填充区
}

代码部分完成后,将下拉列表的AutoPostBack属性改为true

05-22 00:24