根据第一个下拉框中的选定选项加载下拉框

时间:2014-01-15 06:13:12

标签: c# asp.net

我想在下拉框1中根据我的选择显示第二个下拉框 我是asp.net的新手,在asp.net中使用c#,我不知道java脚本和jquery,所以我知道html和CSS代码如下:

      <asp:DropDownList ID="typeselect" runat="server" AutoPostBack="true" OnSelectedIndexChanged="typeselect_SelectedIndexChanged">
          <asp:ListItem Selected="True" Text="cash" Value="0"></asp:ListItem>
          <asp:ListItem Text="Traveller's cheque" Value="1"></asp:ListItem>
      </asp:DropDownList>

当我从上面的代码中选择旅行者的支票时,我希望得到另一个下拉框,与我选择现金时不同。从上面的列表项中选择现金时,以下下拉框是默认值。

当用户选择旅行支票时,如何显示上述代码?  请帮我实现这个.. 提前谢谢..

5 个答案:

答案 0 :(得分:1)

typeselect_SelectedIndexChanged event中。

    protected void typeselect_SelectedIndexChanged(object sender, EventArgs e)
    {
       try{
        seconddropdown.Items.Clear();
        IList<InfoContainer> info = getInfoBasedOnSelected(typeselect.Value);
        seconddropdown.DataTextField = "name";
        seconddropdown.DataValueField = "value";
        seconddropdown.DataSource = info;
        seconddropdown.DataBind();
        }catch(Exception ex)
        {
          throw new ApplicationException("ERROR :", ex);
        }
   }

不要忘记为AutoPostBack="True"下拉列表设置typeselect

答案 1 :(得分:1)

我认为jQuery方法对此有好处,因为对于单个下拉列表而言,回发整个事情并不好。

答案 2 :(得分:0)

你有至少两个选择 1)处理typeselect_SelectedIndexChanged事件(就像你所做的那样)。有关更多示例,请参阅此页面:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedindexchanged(v=vs.110).aspx 关于这一点的坏处是它将在服务器上发布并刷新页面。如果你想避免这种情况,你必须使用选项二 2)使用ajax获取网页的部分数据。我认为这个例子应该接近你的需要:Partial postback of page with dropdownlist using AJAX on MVC3 page EF4

答案 3 :(得分:0)

答案 4 :(得分:0)

处理您下拉列表的SelectedIndexChanged事件:

this.typeselect.SelectedIndexChanged += new EventHandler(typeselect_SelectedIndexChanged);

之后,您可以转到typeselect_SelectedIndexChanged并检查选择了哪个值。如果是“旅行支票”,您可以绑定第二个下拉列表:

otherDropdown.DataTextField = "Name";
otherDropdown.DataValueField = "ID";
otherDropdown.DataSource = IList<T>;
otherDropdown.DataBind();
相关问题