0

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

在我的工作中,一个特定的网络表单包含两个下拉列表,其 ID 分别为“DepartFrom”和“DepartTo”。每个列表都包含相同的文本项。文本是“达卡、吉大港、锡尔赫特、考克斯巴扎尔”。

现在我想采取如下行动:

  1. 当我在“DepartFrom”列表中选择“Dhaka”时,它不会出现在“DepartTo”列表中,但其他人会出现。
  2. 当我在“DepartFrom”列表中选择“文本”时,“Dhaka”除外,“DepartTo”列表中只会出现“Dhaka”。

我已经尝试过了,但它不起作用。

`protected void Page_Load(object sender, EventArgs e)
        {

                if (DepartFrom.Items.ToString() == "达卡")
                {
                    DepartTo.Items.Clear();
                    DepartTo.Items.Add("吉大港");
                    DepartTo.Items.Add("Cox'sbazar");
                    DepartTo.Items.Add("锡尔赫特");
                    DepartTo.SelectedIndex = 0;
                }

                别的
                {
                    DepartTo.Items.Clear();
                    DepartTo.Items.Add("达卡");
                    DepartTo.SelectedIndex = 0;
                }

        }
`

任何人都可以帮忙吗?

4

2 回答 2

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 == "")
   {
     .....
   }
}
于 2013-04-20T18:22:44.300 回答
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);
       }
     }
   }

}
于 2013-04-20T18:46:02.237 回答