我有三個DropDown列表Controls.each下拉列表中包含靜態值1,2,3,4 我需要做的是當第一個下拉列表中選擇一個項目(在SelectedIndexChanged事件)相同的項目應該在其他兩個下拉列表中選擇DropDown列表選擇
回答
這就是你所做的。
在ASPX代碼:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
在代碼隱藏:
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
string value = ddl.SelectedValue;
SetValue(DropDownList1, value);
SetValue(DropDownList2, value);
SetValue(DropDownList3, value);
}
protected void SetValue(DropDownList ddl, string value)
{
ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(value));
}
只需鍵入ddl1.SelectedValue = ddl2.SelectedValue
將無法正常工作,因爲DropDownList.SelectedValue
是隻讀的。
請注意,我沒有將所有DDL的SelectedIndex
設置爲發件人的SelectedIndex
。你的可以在你的示例場景中使用它,但是如果你的一個DDL的ListItems的順序與其他順序不同,代碼將會中斷。在我看來,這使得它危險的做法,但YMMV。另外,如果您決定推廣SetValue方法(我經常在整個項目中將其作爲擴展方法添加到DropDownList
控件中),則應該處理在DDL中找不到目標值的情況,推測是拋出異常。您也可以使用FindByText
製作SetText版本。
將第2個和第3個下拉列表中的selectedvalue屬性設置爲第1個上的選定值。將DropDown設置爲autopostback =「true」,以便將其發送回服務器,並且可以適當地進行設置。
或者,當更改客戶端事件觸發第一個選擇元素時,使用客戶端JavaScript更改其他select元素上的selectedindex屬性。
所有你需要做的是設置你的其他下拉列表的SelectedIndex
這樣的:
protected void DropDownList1SelectedIndexChanged(Object sender, EventArgs e)
{
dropDownList2.SelectedIndex = dropDownList1.SelectedIndex;
dropDownList3.SelectedIndex = dropDownList1.SelectedIndex;
}
忘了提及...所有下拉列表中的值都不是相同的順序,所以這不起作用... – chamara 2011-01-19 18:16:22
嘗試以下操作:
標記:
<asp:DropDownList ID="dd1" OnSelectedIndexChanged="dd1_SelectedIndexChanged" AutoPostBack="true" runat="server" />
<asp:DropDownList ID="dd2" runat="server" />
<asp:DropDownList ID="dd3" runat="server" />
代碼隱藏:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
BindData();
}
protected void dd1_SelectedIndexChanged(object sender, EventArgs e)
{
string selected = dd1.SelectedValue;
dd1.SelectedValue = dd2.SelectedValue = dd3.SelectedValue = selected;
BindData();
}
private void BindData()
{
int[] values = { 1, 2, 3, 4 };
dd1.DataSource = dd2.DataSource = dd3.DataSource = values;
dd1.DataBind();
dd2.DataBind();
dd3.DataBind();
}
我相信`dd1.SelectedValue = dd2.SelectedValue`會導致錯誤,因爲這是一個只讀屬性。 – 2011-01-19 18:37:31
@Justin:不,它不是。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue.aspx。我測試了我的代碼btw。 – volpav 2011-01-19 19:08:37
- 1. 在asp mvc中的DropDown列表選擇
- 2. 簡單的SlickGrid DropDown選擇列表celleditor
- 3. Selenium 2.0 - @FindBy - Dropdown列表選擇
- 4. jquery dropdown從列表中間選擇日期選擇器和值
- 5. SharePoint DropDown列表篩選器
- 6. DropDown默認選擇
- 7. 填充DropDown /選擇基於另一個DropDown選擇的值
- 8. DropDown選擇不提交到表格
- 9. Dropdown-爲數據庫表選擇
- 10. Drupal 7 DropDown選擇列表以顯示在視圖中
- 11. 如何從PHP中的DropDown列表中選擇值?問題
- 12. 問題頁面生成時從DropDown列表中選擇DB值
- 13. Excel:使用DropDown列表在數值選擇時拉取數據
- 14. DropDown列表選擇索引更改事件如何工作jquery?
- 15. 造型選擇輸入DROPDOWN
- 16. DateTimePicker選擇只與DropDown
- 17. Dropdown默認選擇值
- 18. 默認DropDown和複選框列表值
- 19. 帶有複選框的DropDown列表
- 20. 用jquery按值選擇多選dropDown
- 21. jQuery:HTML DropDown列表的作品,但ASP控制DropDown列表不是
- 22. 選擇從選擇列表
- 23. 選擇列表選擇更改另一個選擇列表
- 24. 選擇列表
- 25. First DropDown選擇不會觸發第二個DropDown函數
- 26. Angular 3 dropDown選擇出生日
- 27. jQuery限制「Dropdown Check List」選擇
- 28. 使用Selenium IDE選擇Kendo Dropdown
- 29. 在selenium webdriver中選擇「bootstrap dropdown」的值?
- 30. Bootstrap選擇器dropdown-menu.pullright不工作?
好吧!那麼什麼不起作用? – Shoban 2011-01-19 18:06:00