我是C#和asp.net的初学者。
在我的工作中,特定的webform包含两个下拉列表,其ID分别为“DepartFrom”和“DepartTo”。每个列表包含相同的文本项。文字是“Dhaka,Chittagong,Sylhet,Cox'sbazar”。
现在我想采取以下行动:
我试过这个,但它没有用。
`protected void Page_Load(object sender, EventArgs e) { if (DepartFrom.Items.ToString() == "Dhaka") { DepartTo.Items.Clear(); DepartTo.Items.Add("Chittagong"); DepartTo.Items.Add("Cox'sbazar"); DepartTo.Items.Add("Sylhet"); DepartTo.SelectedIndex = 0; } else { DepartTo.Items.Clear(); DepartTo.Items.Add("Dhaka"); DepartTo.SelectedIndex = 0; } } `
有人可以帮忙吗?
答案 0 :(得分:0)
您可以将AutoPostBack="true"
设置为定义第二个下拉列表行为的下拉列表,并在此下拉列表中定义SelectedIndexChanged
事件
asp:DropDownList ID="DepartTo" runat="server" AutoPostBack="True"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
背后的代码
protected void itemSelected(object sender, EventArgs e)
{
var control = (DropDownList)sender;
if(control.SelectedValue == "")
{
.....
}
}
答案 1 :(得分:0)
这是一个漫长但易于理解的方式:
<asp:DropDownList ID="DepartFrom" runat="server" AutoPostBack="True"
onselectedindexchanged="fromSelected">
</asp:DropDownList>
<asp:DropDownList ID="DepartTo" runat="server">
</asp:DropDownList>
代码背后。
string[] items={"Dhaka", "Chittagong", "Sylhet", "Cox'sbazar"};
protected void fromSelected(object sender, EventArgs e)
{
if((sender as DropDownList)!=null)
{
DepartTo.Items.Clear();
foreach(string str in items)
{
if((sender as DropDownList).SelectedItem.ToString()!=str)
{
DepartTo.Items.Add(str);
}
}
}
}