Для обеспечения согласованности я не могу использовать окно предупреждения для отображения сообщения в моем коде, когда кто-то выбирает определенный элемент в раскрывающемся списке. Оно должно отображать красное сообщение под раскрывающимся списком только в том случае, если кто-то выбрал конкретный элемент.
Таким образом, в этом случае, если кто-то выбирает Алабаму, например, из раскрывающегося списка штатов, красное сообщение должно отображаться под полем раскрывающегося списка сразу после того, как выбор будет сделан. Старая версия этой формы работает правильно, но новая версия формы со многими изменениями не отображает это сообщение.
В коде за файлом (файл aspx.vb) у меня есть следующие фрагменты кода:
Protected Sub StateDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles StateDropDownList.SelectedIndexChanged
If StateDropDownList.Text = "AK" Then
AlabamaPanel.Visible = True
Session("Alabama") = "Yes"
Else
AlabamaPanel.Visible = False
Session("Alabama") = "No"
End If
StateDropDownList.Focus()
End Sub
Я использую предыдущий код с некоторыми изменениями, и другая часть проблемы заключается в том, что я не понимаю часть сеанса («Алабама») - я не нахожу нигде в коде, где указан сеанс («Алабама»). или, скорее, чтобы понять, что такое Session () и как он вообще может узнать, что такое сеанс Alabama ... Итак, если вы знаете что-то о Session (), что может быть полезно - я вижу это (https://msdn.microsoft.com/en-us/library/ms178581%28v=vs.140%29.aspx), но это не помогает мне понять. Единственное место в коде, которое существует сама по себе, - это элементы раскрывающегося списка. И, возможно, это часть проблемы, поскольку в старом коде Алабама была специально отмечена в длинном списке, например (в файле aspx, а не в файле aspx.vb), например:
<asp:DropDownList class="DropDowns" ID="StateDropDownList" runat="server" AutoPostBack="True">
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="AL">Alabama</asp:ListItem>
<asp:ListItem Value="AK">Alaska</asp:ListItem>
<asp:ListItem Value="AZ">Arizona</asp:ListItem>
<asp:ListItem Value="AR">Arkansas</asp:ListItem>
<asp:ListItem Value="CA">California</asp:ListItem>
<asp:ListItem Value="CO">Colorado</asp:ListItem>
<asp:ListItem Value="CT">Connecticut</asp:ListItem>
<asp:ListItem Value="DE">Delaware</asp:ListItem>
<asp:ListItem Value="DC">District of Columbia</asp:ListItem>
<asp:ListItem Value="FL">Florida</asp:ListItem>
<asp:ListItem Value="GA">Georgia</asp:ListItem>
<asp:ListItem Value="HI">Hawai'i</asp:ListItem>
<asp:ListItem Value="ID">Idaho</asp:ListItem>
<asp:ListItem Value="IL">Illinois</asp:ListItem>
<asp:ListItem Value="IN">Indiana</asp:ListItem>
<asp:ListItem Value="IA">Iowa</asp:ListItem>
<asp:ListItem Value="KS">Kansas</asp:ListItem>
<asp:ListItem Value="KY">Kentucky</asp:ListItem>
<asp:ListItem Value="LA">Louisiana</asp:ListItem>
<asp:ListItem Value="ME">Maine</asp:ListItem>
<asp:ListItem Value="MD">Maryland</asp:ListItem>
<asp:ListItem Value="MA">Massachusetts</asp:ListItem>
<asp:ListItem Value="MI">Michigan</asp:ListItem>
<asp:ListItem Value="MN">Minnesota</asp:ListItem>
<asp:ListItem Value="MS">Mississippi</asp:ListItem>
<asp:ListItem Value="MO">Missouri</asp:ListItem>
<asp:ListItem Value="MT">Montana</asp:ListItem>
<asp:ListItem Value="NE">Nebraska</asp:ListItem>
<asp:ListItem Value="NV">Nevada</asp:ListItem>
<asp:ListItem Value="NH">New Hampshire</asp:ListItem>
<asp:ListItem Value="NJ">New Jersey</asp:ListItem>
<asp:ListItem Value="NM">New Mexico</asp:ListItem>
<asp:ListItem Value="NY">New York</asp:ListItem>
<asp:ListItem Value="NC">North Carolina</asp:ListItem>
<asp:ListItem Value="ND">North Dakota</asp:ListItem>
<asp:ListItem Value="OH">Ohio</asp:ListItem>
<asp:ListItem Value="OK">Oklahoma</asp:ListItem>
<asp:ListItem Value="OR">Oregon</asp:ListItem>
<asp:ListItem Value="PA">Pennsylvania</asp:ListItem>
<asp:ListItem Value="RI">Rhode Island</asp:ListItem>
<asp:ListItem Value="SC">South Carolina</asp:ListItem>
<asp:ListItem Value="SD">South Dakota</asp:ListItem>
<asp:ListItem Value="TN">Tennessee</asp:ListItem>
<asp:ListItem Value="TX">Texas</asp:ListItem>
<asp:ListItem Value="UT">Utah</asp:ListItem>
<asp:ListItem Value="VT">Vermont</asp:ListItem>
<asp:ListItem Value="VA">Virgina</asp:ListItem>
<asp:ListItem Value="WA">Washington</asp:ListItem>
<asp:ListItem Value="WV">West Virgina</asp:ListItem>
<asp:ListItem Value="WI">Wisconsin</asp:ListItem>
<asp:ListItem Value="WY">Wyoming</asp:ListItem>
</asp:DropDownList>
Но теперь мы обращаемся к другому файлу VB, чтобы получить раскрывающийся список состояний, и полного набора, показанного выше, больше нет в коде.
Поскольку нигде, кроме этого списка, который больше не существует, или этого списка, который существует в отдельном файле vb, который мы вызываем и который успешно заполняет раскрывающийся список, не существует, то, возможно, это может блокировать работу Session ()?
В новом коде (в файле aspx, а не в файле aspx.vb) все вышеперечисленное заменено на:
<label for="StateDropDownList">State <span class="Required">*</span></label>
<asp:DropDownList class="form-control" ID="StateDropDownList" runat="server">
</asp:DropDownList>
Я пытаюсь использовать (в файле aspx):
<asp:Panel ID="AlabamaPanel" runat="server" Visible="false">
<tr>
<td align="center" colspan="3">
<br />
<asp:Label ID="AlabamaLabel" runat="server" visibile="false" Text="Alabama Text that I want to appear right below the statedropdownlist field if they choose alabama."
Font-Bold="True" ForeColor="#e00022" />
</td>
</tr>
</asp:Panel>
чтобы текст отображался на странице под раскрывающимся списком, если пользователь выбирает Алабаму, а он просто не отображается. Я также попытался вернуть длинный список состояний вместо вызова отдельного выпадающего vb-файла.
Я также пытаюсь использовать панель обновлений, заключив раскрывающийся список в
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
И это принесло мне пользу, потому что до этого я не мог включить autopostback = "true", чтобы он не выводил меня на пустой экран всякий раз, когда кто-то выбирал Алабаму из раскрывающегося списка. Теперь, по крайней мере, весь экран не гаснет ... Но я все еще не получаю сообщение для отображения на экране.
Также я пробовал это, но все еще не появлялось сообщения:
<asp:DropDownList class="form-control" ID="StateDropDownList" runat="server" AutoPostBack="True" CausesValidation="False" OnSelectedIndexChanged="StateDropDownList_SelectedIndexChanged">
Есть какие-нибудь идеи или что-то явно очевидное, почему мое сообщение не появляется, когда кто-то выбирает Алабаму?