DropDownList中我做二级联动
发布网友
发布时间:2022-04-27 12:18
我来回答
共3个回答
热心网友
时间:2022-04-27 13:47
前台:
<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);
}
}
}
是这样的效果吗?如果理解有误,希望将你的意思表述清楚些。
热心网友
时间:2022-04-27 15:05
那就selectedindexchange事件(好像是这个,不然意思也差不多)里重新绑定另一个dropdownlist呗
热心网友
时间:2022-04-27 16:40
后台代码:
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;
}
}