在我的 ASP 网站中,我有两个下拉列表,第一个有四个用户选择的选项,基于此,第二个下拉列表将从选定的数据库列数据中填充。我正在尝试以编程方式填充这些列表,而不是通过数据源绑定它们
我目前的代码有两个问题:
1. 在我的“onselectedIndex changed”方法中,如果我想单击下拉列表中的第一个元素,我无法触发我的事件,我必须单击另一个项目,然后重新单击第一个元素以触发它。我确实将 AutoPostBack 设置为 true
2. 当事件触发数据库数据未填充第二个下拉列表时,它正确填充了数据集的正确行数,但不显示数据。
一旦从第一个下拉列表中选择了第一个元素,即“咖啡名称”,那么第二个列表将填充正确的行号,即 3,但不是正确的数据
当前代码:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string option = DropDownList1.SelectedValue;
// If the selected element is 'Coffee Name' run the method.
if (option == "Coffee Name")
{
bindCoffeeNames();
}
}
private void bindCoffeeNames()
{
Query the DB and bind the data to the second dropdown list.
SqlConnection sqlcon = new SqlConnection(connstring);
SqlCommand sqlcmd = new SqlCommand("select coffeeName from Coffees ORDER BY coffeeName ASC", sqlcon);
SqlDataAdapter adp = new SqlDataAdapter(sqlcmd);
DataSet ds = new DataSet();
adp.Fill(ds);
DropDownList2.DataSource = ds.Tables[0];
DropDownList2.DataBind();
}