我想在下拉框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>
当我从上面的代码中选择旅行者的支票时,我希望得到另一个下拉框,与我选择现金时不同。从上面的列表项中选择现金时,以下下拉框是默认值。
当用户选择旅行支票时,如何显示上述代码? 请帮我实现这个.. 提前谢谢..
答案 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();