今天利用ajax extension 做了一个无刷 dropdownlist 联动的效果。
数据库中一张car table ,两列分别为band,model。
实现效果,点击dropdownlist1中的车品牌,dropdownlist2中自动加载对应的型号。
首先将dropdownlist1和car表中的band绑定,并且设置为autopostback。拖入一个updatepanel,triger设置为dropdownlist1的
selectitemchanged属性,然后在dropdownlist的事件中写入以下代码:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
load(DropDownList1.SelectedItem.ToString());
}
private void load(string band)
{
string strConn = "uid=sa;pwd=sa;database=test;server=(local)";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
string queryString = "select * from car where band='" + band + "'";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, conn);
DataSet cars = new DataSet();
adapter.Fill(cars, "model");
DropDownList2.DataSource = cars.Tables[0].DefaultView;
DropDownList2.DataTextField = "model";
DropDownList2.DataValueField = "band";
DropDownList2.DataBind();
conn.Close();
}
利用dataset填充dropdownlist
编程过程中遇到的错误:
"select * from car where band='" + band + "'"; 语句中忘记给 +band+ 加双引号
server= (local) 忘记加括号。