Я попытался просмотреть множество вопросов о выпадающем списке и еще не решил проблему.Выпадающее выбранное значение сбрасывается до первого элемента
У меня есть раскрывающийся список и кнопка отправки. Когда кнопка Отправить нажата после выбранного значения, она должна обновить текст метки с выбранным значением в раскрывающемся списке. Однако, что произошло, каждый раз значение выбирается из раскрывающегося списка, оно обновляет страницу, и значение, которое было захвачено, было первым элементом в раскрывающемся списке. Как правильно сохранить выбранное значение перед его обновлением?
Am at wits end, не уверен, где поступил не так.
* Все элементы в раскрывающемся списке уникальны. Нет дублирования.
Мои коды:
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;
}
он останавливает обновление, но все же захватывает первый индекс в раскрывающемся списке, хотя я выбрал другое значение. – mellissa
Что заполняет ddlCode? Если это список строк, возможно, вам просто нужно значение ddlCode [ddlCode.SelectedIndex] .Substring (0,4) (без .Text), или вы можете просто использовать ddlCode.SelectedItem.Substring (0,4). –
Кроме того, помните, что ASP.Net является безстоящим - если вы не задаете переменную сеанса, это значение может исчезнуть к моменту нажатия кнопки «Отправить» - вы можете убедиться, что, установив точку останова и глядя на значение ddlSelectedIndex, когда метка получает задавать. Почему бы просто не включить этот код в SubmitBtn_Click и использовать то, что в данный момент выбрано в раскрывающемся списке? –