[英]Load 2nd drop down list items based on 1st selected drop down list item
<div class="form-group col-lg-12">
<label for="ddl1">1:</label>
<asp:DropDownList ID="ddl1" name="ddl1" CssClass="form-control" runat="server" />
</div>
<div class="form-group col-lg-12">
<label for="ddl2">1:</label>
<asp:DropDownList ID="ddl2" name="ddl2" CssClass="form-control" runat="server" required />
</div>
我試圖根據我選擇的ddl1的值來獲取ddl2的下拉列表項。 因此,“ if”函數和void Get1和Get2。 注意:每個ddl的數據都來自數據庫中的一個表。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddl1Get();
Get1();
Get2();
}
#region "Function"
if (ddl1.SelectedItem.Value == "1")
{
Get1();
}
else if (1.SelectedItem.Value == "2")
{
Get2();
}
#endregion
}
#region "Function"
if (ddl1.SelectedItem.Value == "1")
{
Get1();
}
else if (ddl1.SelectedItem.Value == "2")
{
Get2();
}
#endregion
void Get1()
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT ID, Category FROM Table1";
SqlDataReader dr = cmd.ExecuteReader();
ddl2.DataSource = dr;
ddl2.DataTextField = "Category";
ddl2.DataValueField = "Category";
ddl2.DataBind();
con.Close();
ddl2.Items.Insert(0, new ListItem(" ", ""));
}
void Get2()
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT ID, Category FROM Table2";
SqlDataReader dr = cmd.ExecuteReader();
ddl2.DataSource = dr;
ddl2.DataTextField = "Category";
ddl2.DataValueField = "Category";
ddl2.DataBind();
con.Close();
ddl2.Items.Insert(0, new ListItem(" ", ""));
}
void ddlGet()
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT ID, Category FROM Table0";
SqlDataReader dr = cmd.ExecuteReader();
ddl1.DataSource = dr;
ddl1.DataTextField = "Category";
ddl1.DataValueField = "Category";
ddl1.DataBind();
con.Close();
ddl1.Items.Insert(0, new ListItem(" ", ""));
}
protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddl1.SelectedItem.Value == "1")
{
Get1();
}
else if (ddl1.SelectedItem.Value == "2")
{
Get2();
}
}
下拉菜單的selectedindex已更改。只需雙擊下拉菜單並在其中復制代碼即可。 那么它應該工作正常。
public void ddl1_selectedIndexChanged(sender,e){ //your code here }
另外,您在代碼中兩次提到了Get2()。 是復制錯誤還是您沒有注意到代碼? 這可能是為什么即使更改了選定值也要綁定相同值的問題
使用OnSelectedIndexChanged
asp:DropDownList
OnSelectedIndexChanged
事件
protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddl1.SelectedItem.Value == "1")
{
Get1();
}
else if (ddl1.SelectedItem.Value == "2")
{
Get2();
}
}
另外:
ddl1.DataTextField = "Category";
ddl1.DataValueField = "ID";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.