首先分別做三個下拉列表 建類:China實體類 數據訪問類: } } conn.Close(); return list; } } .cs後臺代碼 首先數據綁定: 代碼部分完成後,將下拉列表的AutoPostBack屬性改為true ...
首先分別做三個下拉列表
<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[0].ToString(); data.Name = dr[1].ToString(); data.Prentcode = dr[2].ToString(); list.Add(data);
}
}
conn.Close();
return list;
}
}
.cs後臺代碼
首先數據綁定:
if (!IsPostBack) { //調用方法綁定數據 Bind(DropDownList1,new ChinaStatesData().Select("0001")); 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