DropDownList中我做二级联动
当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在Dro...
当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在DropDownList2中显示value等于2的项!这里不用数据库!请高手帮忙写后台代码。(c#
)谢了!
在 DropDownList2中有还几个value相等的项可以同时显示出来! 展开
)谢了!
在 DropDownList2中有还几个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">
<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);
}
}
}
是这样的效果吗?如果理解有误,希望将你的意思表述清楚些。
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
那就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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询