【发布时间】:2021-12-08 05:21:14
【问题描述】:
在用户根据他们选择的内容选择第一个所需的下拉菜单后,我正在使用两个下拉框,另一个下拉框将加载最终列表。我有这个工作但我不希望页面在选择第一个下拉选项后重新加载是否有解决方法下面是我的测试代码
Behind code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Items.Add(new ListItem("3 Days", "3 Days"));
DropDownList1.Items.Add(new ListItem("4 Days", "4 Days"));
DropDownList1.Items.Add(new ListItem("5 Days", "5 Days"));
DropDownList1.Items.Add(new ListItem("7 Days", "7 Days"));
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList2.Items.Clear();
DropDownList3.Items.AddRange(GetListItems(DropDownList1.SelectedValue));
}
private ListItem[] GetListItems(string value)
{
var items = new List
<ListItem>
();
if (value == "3 Days")
{
DropDownList2.Items.Add(new ListItem("1", "1"));
}
if (value == "4 Days")
{
DropDownList2.Items.Add(new ListItem("2", "2"));
}
if (value == "5 Days")
{
DropDownList2.Items.Add(new ListItem("3", "3"));
}
if (value == "7 Days")
{
DropDownList2.Items.Add(new ListItem("4", "4"));
}
return items.ToArray();
}
<div class="1">
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="Select..." Value="No selection made"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="1">
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Text="Select..." Value="No selection made"></asp:ListItem>
</asp:DropDownList>
</div>
【问题讨论】:
-
不重新加载页面的唯一方法是使用 AJAX 而不是发布。你愿意使用 JQuery 吗?
-
我对此很陌生,您能详细解释一下吗?
-
将您的
DropDownList包装在更新面板中,只有下拉列表下的部分会异步重新加载页面的其余部分不会。