DropDownList中我做二级联动

当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在Dro... 当选中DropDownList1中是在DropDownList2中显示一些特定内容!我先在DropDownList2中的Items的value中设定了值!意思是要在DropDownList2中显示value等于2的项!这里不用数据库!请高手帮忙写后台代码。(c#
)谢了!
在 DropDownList2中有还几个value相等的项可以同时显示出来!
展开
 我来答
ozyang
2008-12-05 · TA获得超过1330个赞
知道小有建树答主
回答量:749
采纳率:0%
帮助的人:553万
展开全部
前台:

<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 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
meteortent
2008-12-04 · TA获得超过518个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:725万
展开全部
那就selectedindexchange事件(好像是这个,不然意思也差不多)里重新绑定另一个dropdownlist呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
88421220
2008-12-05 · TA获得超过125个赞
知道答主
回答量:150
采纳率:0%
帮助的人:0
展开全部
后台代码:
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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式