下拉列表中选定的值将重置为第一个项目
本文关键字:第一个 项目 下拉列表 | 更新日期: 2023-09-27 17:57:40
我试着浏览了很多关于dropdownlist的问题,但仍然没有解决我的问题。
我有一个Dropdownlist和一个Submit按钮。选择值后单击"提交"按钮时,应使用Dropdownlist的选定值更新标签文本。然而,每次从下拉列表中选择值时,都会刷新页面,并且捕获的值是下拉列表中的第一个项目。如何在所选值刷新之前正确捕获它?
我不知所措,不知道哪里出了问题。
*下拉列表中的所有项目都是唯一的。无重复。
我的代码:
ASP.NET
<form id="form1" runat="server">
<asp:DropDownList ID="ddlCode" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlCode_SelectedIndexChanged"/>
<br />
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"/>
<asp:UpdateProgress ID="updProgress" AssociatedUpdatePanelID="UpdatePanel1" runat="server">
<ProgressTemplate>
<img alt="progress" src="img/loading.gif"/><br /><h2>Loading...</h2>
</ProgressTemplate>
</asp:UpdateProgress>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Button ID="submitBtn" runat="server" cssclass="btn btn-success" OnClick="submitBtn_Click" Text="Submit"/>
<asp:Label ID="lblCode" runat="server"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCode" EventName="SelectedIndexChanged"/>
</Triggers>
</asp:UpdatePanel>
</form>
背后的代码
string ddlSelectedIndex = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//This is to load code into dropdownlist which works fine.
LoadCode();
}
}
protected void ddlCode_SelectedIndexChanged(object sender, EventArgs e)
{
ddlSelectedIndex =(ddlCode.Items[ddlCode.SelectedIndex].Text).Substring(0, 4);
}
protected void submitBtn_Click(object sender, EventArgs e)
{
lblCode.Text = ddlSelectedIndex;
}
在DropDownList上不使用"AutoPostBack=True"的情况下尝试。。。代码的编写方式会在DropDownList值更改时导致页面刷新。您想要的是在单击提交时进行回发。