如何根据下拉列表的动作来设置下拉列表的值?
本文关键字:下拉列表 设置 何根 | 更新日期: 2023-09-27 18:10:05
我是c#和asp.net的初学者。
在我的工作中,一个特定的webform包含两个下拉列表,它们的id分别是"DepartFrom"answers"DepartTo"。每个列表包含相同的文本项。文本为"达卡、吉大港、锡尔赫特、考克斯巴扎尔"。
现在我想做如下操作:
- 当我在"DepartFrom"列表中选择"Dhaka"时,它不会出现在"DepartTo"列表中,但其他的会出现。
- 当我在'DepartFrom'列表中选择'Text'时,除了'Dhaka',只有'Dhaka'会出现在' DepartTo '列表中。
我试过这个,但它不工作。
' protected void Page_Load(对象发送者,EventArgs e){if (departfromm . items . tostring () == "Dhaka"){DepartTo.Items.Clear ();DepartTo.Items.Add("吉大港");DepartTo.Items.Add("考克斯'sbazar");DepartTo.Items.Add("Sylhet");DepartTo。selecteindex = 0;}其他的{DepartTo.Items.Clear ();DepartTo.Items.Add("达卡");DepartTo。selecteindex = 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 == "")
{
.....
}
}
这是一个很长但很容易理解的方法:
<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);
}
}
}
}