可能重複填充下拉列表:
Populate one dropdown based on selection in another基於另一個下拉列表中
我有我的aspx頁面上3下拉列表中。第一個硬編碼有4個值。第二個應該以編程方式填充,例如。如果我在第一個下拉列表中選擇「Product1」,則應該使用「Model1_1」,「Model1_2」等值填充第二個下拉列表。如果我選擇「Product2」,則第二個下拉列表中填入「Model2_1」,「Model2_2」)。
你能給我一些幫助嗎?
可能重複填充下拉列表:
Populate one dropdown based on selection in another基於另一個下拉列表中
我有我的aspx頁面上3下拉列表中。第一個硬編碼有4個值。第二個應該以編程方式填充,例如。如果我在第一個下拉列表中選擇「Product1」,則應該使用「Model1_1」,「Model1_2」等值填充第二個下拉列表。如果我選擇「Product2」,則第二個下拉列表中填入「Model2_1」,「Model2_2」)。
你能給我一些幫助嗎?
1在第一個DropDownList1上設置AutoPostBack="true"
並添加OnSelectIndexChanged="YourDelegate"
。
2在你的委託當您發佈的數據,與前綴的SelectedValue
protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
var value = DropDownList1.SelectedValue;
if(value == "Product1")
{
....
}
else if(value == "Product2")
{
....
}
}
我能說出2個解決這一問題,結合你的第二個DropDownList2。
第一個涉及使用AJAX工具包中的Cascading Drop Down for ASP.NET頁面。 你有這裏的參考和一個例子: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx 這是不知何故cleaner
它不會導致回發,但你必須使用該工具包。但學習使用它很好,因爲它提供了其他好的設施。
第二個涉及爲您的DropDownList添加OnSelectedIndexChange事件的處理程序。因此,當用戶從第一個下拉列表中選擇一個值時,服務器端會捕獲該事件並使用必要的值填充第二個DropDown。由於這需要服務器端操作,因此在做出選擇後重新加載頁面可能相當麻煩。 客戶端應該是這樣的:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack = true OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>
凡在服務器端:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList2.Items.Clear();
DropDownList2.Items.Add("text");
....
}
謝謝@Coral Doe! –
您可以通過此方法來填充第二DRP(DropDownList中): 連接1號DRP與表,它調用此查詢:(在SQLDataSource1)
SELECT [id], [name] FROM Products
在第二DRP你應該調用(在SQLDataSource2)
在SQLDataSource2
select command
地產
SELECT [id], [name] FROM Models WHERE [email protected]_id
添加參數值Product_id
它必須是drp1.SelectedValue
注意:不要爲DRP1
謝謝@eminach! –
忘記
Enable AutoPostBack
我發現它也如同,但下拉列表中填充來自SQL數據庫。謝謝 –