私の ASP Web サイトには 2 つのドロップダウン リストがあります。最初のドロップダウン リストにはユーザーが選択する 4 つのオプションがあり、これに基づいて 2 番目のドロップダウン リストには、選択したデータベース列のデータが入力されます。これらのリストを、データ ソースを介してバインドするのではなく、プログラムで入力しようとしています。
私が現在持っているコードには2つの問題があります:
1. 'onselectedIndex changed' メソッド内で、ドロップダウン リストの最初の要素をクリックしたい場合、イベントをトリガーできません。別の項目をクリックしてから、最初の項目もトリガーするためにもう一度クリックする必要があります。AutoPostBack を true に設定しています
2. イベントがトリガーされると、データベース データは 2 番目のドロップダウン リストに入力されません。データセットの正しい量の行が正しく入力されますが、データは表示されません。
最初のドロップダウン リストから最初の要素、つまり「coffee Name」が選択されると、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();
}