[英]populate a dropdownlist according to the values selected from a different dropdownlist
我想根據從其他dropdownlist
選擇的房間類型,用房間號填充dropdownlist
dropdownlist
。 但是,從dropdown
選擇房間類型后,其他dropdown
dropdown
的值每次都會重復。 這是sql表和程序。
Room num, Room type, Cost, Status
A1 AC 223 Av
B2 Non Ac 180 Av
public partial class customer_reservation : System.Web.UI.Page
{
string connectionString = WebConfigurationManager.ConnectionStrings["newdb"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string rval = DropDownList1.SelectedValue.ToString();
SqlConnection con = new SqlConnection(connectionString);
con.Open();
string qry = "select Roomnum from room where rtype=@rval and rstatus like 'AV'";
SqlCommand cmd = new SqlCommand(qry,con);
cmd.Parameters.AddWithValue("@rval",rval);
SqlDataReader rd1 = cmd.ExecuteReader();
if (rd1.HasRows)
{
while (rd1.Read())
{
DropDownList2.Items.Add(rd1[0].ToString());
}
}
con.Close();
}
}
解決此問題的最簡單方法是清除第二個下拉列表中的項目集合,然后開始填充它。
簡單的DropDownList2.Items.Clear()
應該可以解決問題。
在選定索引上的第一個下拉列表已更改
將第二個列表綁定到其數據源。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if(true) // your check condition
{
//clear previous values using .Clear()
dropdownlist2.Items.Clear()
//bind the second dropdownlist to new options
//or add options
}
}
用這個
DropDownList2.Items.Clear();
遍歷您的函數DropDownList1_SelectedIndexChanged
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList2.Items.Clear();
string rval = DropDownList1.SelectedValue.ToString();
SqlConnection con = new SqlConnection(connectionString);
con.Open();
string qry = "select Roomnum from room where rtype=@rval and rstatus like 'AV'";
SqlCommand cmd = new SqlCommand(qry,con);
cmd.Parameters.AddWithValue("@rval",rval);
SqlDataReader rd1 = cmd.ExecuteReader();
if (rd1.HasRows)
{
while (rd1.Read())
{
DropDownList2.Items.Add(rd1[0].ToString());
}
}
con.Close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.