当前位置: 代码迷 >> ASP.NET >> asp.net两个相关的下拉框怎么在第二个下拉框中不显示第一个下拉框选取的值
  详细解决方案

asp.net两个相关的下拉框怎么在第二个下拉框中不显示第一个下拉框选取的值

热度:8970   发布时间:2013-02-25 00:00:00.0
asp.net两个相关的下拉框如何在第二个下拉框中不显示第一个下拉框选取的值
两个下拉框的内容是一样的,是从数据库绑出来的数据。比如,下拉框ddla和ddlb都绑定的是a,b,c,d。但是我希望第一个选中a后,第二个下拉框就不显示a,同样的,如果我先选择第二个的a,那么第一个下拉框就不显示a。


------解决方案--------------------------------------------------------
在下拉框事件中判断就好了!
------解决方案--------------------------------------------------------
在SelectedIndexChanged 这个事件中逻辑判断下就好了
------解决方案--------------------------------------------------------
用js可以做到无刷新
用后台事件就是刷新
推荐使用无刷新,用户体验好
------解决方案--------------------------------------------------------
给你写了一个!

前台
HTML code
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"             onselectedindexchanged="DropDownList1_SelectedIndexChanged1">            <asp:ListItem>1</asp:ListItem>            <asp:ListItem>2</asp:ListItem>            <asp:ListItem>3</asp:ListItem>        </asp:DropDownList>        <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"             onselectedindexchanged="DropDownList2_SelectedIndexChanged">            <asp:ListItem>1</asp:ListItem>            <asp:ListItem>2</asp:ListItem>            <asp:ListItem>3</asp:ListItem>        </asp:DropDownList>
------解决方案--------------------------------------------------------
探讨

曾经写过一个,现在忘记了。也不知道弄到哪里去了,很悲催

------解决方案--------------------------------------------------------
探讨

引用:
引用:

曾经写过一个,现在忘记了。也不知道弄到哪里去了,很悲催


因为我这个是静态的。动态的肯定要循环了, 你可以根据我这个修改下,成动态绑定的!

就你的这个,else里如果重新加载数据源的话,应该还是会重新加上移除的那个了啊

------解决方案--------------------------------------------------------
protected void ddl_sellId_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < ddl_sellId.Items.Count; i++)
{
if (ddl_sellId.SelectedValue == ddl_sellId2.SelectedValue)
{
ddl_sellId2.DataSource=bll.List("ID !=" + Convert.ToInt32(ddlType.SelectedValue) + "");
ddl_sellId2.DataBind();
}
}
}

看看这么写对不对?


------解决方案--------------------------------------------------------
protected void ddl_sellId_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < ddl_sellId.Items.Count; i++)
{
if (ddl_sellId.SelectedValue == ddl_sellId2.SelectedValue)
{
ddl_sellId2.DataSource=bll.List("ID !=" + Convert.ToInt32 (ddl_sellId.SelectedValue) + "");
ddl_sellId2.DataBind();
}
}
}

------解决方案--------------------------------------------------------
探讨

引用:
引用:

引用:
引用:

曾经写过一个,现在忘记了。也不知道弄到哪里去了,很悲催


因为我这个是静态的。动态的肯定要循环了, 你可以根据我这个修改下,成动态绑定的!

就你的这个,else里如果重新加载数据源的话,应该还是会重新加上移除的那个了啊


你可以选择不加载,我只是考虑是否移除……
  相关解决方案