DropDownList中我做二级联动
当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在Dro...
当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在DropDownList2中显示value等于2的项!这里不用数据库!请高手帮忙写后台代码。(c#
)谢了!
在 DropDownList2中有还几个value相等的项可以同时显示出来! 展开
)谢了!
在 DropDownList2中有还几个value相等的项可以同时显示出来! 展开
3个回答
展开全部
前台:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
后台:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string value = DropDownList1.SelectedValue;
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList1.Items.FindByValue(value));
}
-------------------------
不知道理解的对不对,你是想第二个下拉框只显示符合第一个下拉框的值的数据项吗?
那你可以用另一个下拉框,设成隐藏的,然后将过滤后的数据显示在第三个下拉框的数据项上,
这样:
前台:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" Visible="false">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server">
</asp:DropDownList>
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadItem();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
LoadItem();
}
private void LoadItem()
{
string value = DropDownList1.SelectedValue;
DropDownList3.Items.Clear();
foreach (ListItem item in DropDownList2.Items)
{
if (item.Value == value)
{
DropDownList3.Items.Add(item);
}
}
}
是这样的效果吗?如果理解有误,希望将你的意思表述清楚些。
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
后台:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string value = DropDownList1.SelectedValue;
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList1.Items.FindByValue(value));
}
-------------------------
不知道理解的对不对,你是想第二个下拉框只显示符合第一个下拉框的值的数据项吗?
那你可以用另一个下拉框,设成隐藏的,然后将过滤后的数据显示在第三个下拉框的数据项上,
这样:
前台:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" Visible="false">
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
<asp:ListItem Text="第一项" Value="1"></asp:ListItem>
<asp:ListItem Text="第二项" Value="2"></asp:ListItem>
<asp:ListItem Text="第三项" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server">
</asp:DropDownList>
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadItem();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
LoadItem();
}
private void LoadItem()
{
string value = DropDownList1.SelectedValue;
DropDownList3.Items.Clear();
foreach (ListItem item in DropDownList2.Items)
{
if (item.Value == value)
{
DropDownList3.Items.Add(item);
}
}
}
是这样的效果吗?如果理解有误,希望将你的意思表述清楚些。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
展开全部
那就selectedindexchange事件(好像是这个,不然意思也差不多)里重新绑定另一个dropdownlist呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台代码:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs)
{
if(DropDownList1.SelectedIndex != -1)//如果第一个DropDownList有选中项
{
string value = DropDownList1.SelectedItem.Value;//获取第一个DropDownList的value值;
//1.一种方式
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(value));//通过Value来获取第二个DropDownList的索引值;
//2。第二种方式
DropDownList2.SelectedIndex = -1;
DropDownList2.Items.FindByValue(value).Selected = true;
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs)
{
if(DropDownList1.SelectedIndex != -1)//如果第一个DropDownList有选中项
{
string value = DropDownList1.SelectedItem.Value;//获取第一个DropDownList的value值;
//1.一种方式
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(value));//通过Value来获取第二个DropDownList的索引值;
//2。第二种方式
DropDownList2.SelectedIndex = -1;
DropDownList2.Items.FindByValue(value).Selected = true;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询