如何根据下拉列表的动作来设置下拉列表的值?

本文关键字:下拉列表 设置 何根 | 更新日期: 2023-09-27 18:10:05

我是c#和asp.net的初学者。

在我的工作中,一个特定的webform包含两个下拉列表,它们的id分别是"DepartFrom"answers"DepartTo"。每个列表包含相同的文本项。文本为"达卡、吉大港、锡尔赫特、考克斯巴扎尔"。

现在我想做如下操作:

  1. 当我在"DepartFrom"列表中选择"Dhaka"时,它不会出现在"DepartTo"列表中,但其他的会出现。
  2. 当我在'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);
       }
     }
   }
}