Автозаполнение вызывает ошибку в AspNet Cascading DropDownList

все. У меня есть страница, и она имеет форму внутри asp: UpdatePanel (UP). Форма имеет поля Имя, Адрес, Телефон, ... (asp: TextBox). Но город и штат - это элементы управления asp: DropDownList (DDL). DDL штата фильтрует DDL города. Когда DDL штата изменяется, он запускает событие SelectedIndexChanged, которое заставляет DDL города отображать только города этого штата. Проблема возникает, когда мой браузер предлагает (Автозаполнение) предыдущий набор данных. Если я приму предложение, браузер заполнит некоторые поля и два DDL. DDL состояния не запускает событие SelectedIndexChanged. Это событие будет запущено, когда я нажму кнопку «Сохранить». Похоже, что сайт содержит событие SelectedIndexChanged и выполняет его перед методом сохранения формы. Но в данный момент City DDL SelectedValue пуст, даже если на экране отображается город, заполненный автозаполнением.

<asp:ScriptManager ID="ScriptManager" runnat="server" />
<asp:UpdatePanel ID="UpdPanel" runnat="server" >
   <asp:Triggers>
      <asp:AsyncPostBackTrigger ControlID="stateDDL" EventName="SelectedIndexChanged" />
   </asp:Triggers>
   <asp:ContentTemplate>
      <asp:TextBox ID="nameTxtBox" runnat="server" />

      ... // other fields

      <asp:DropDownList ID="stateDDL" runnat="server" AutoPostBack="true" 
         OnSelectedIndexChanged="stateDDL_SelectedIndexChanged" />
      <asp:DropDownList ID="cityDDL" runnat="server" />
   </asp:ContentTemplate>
</asp:UpdatePanel>
Public Sub stateDDL_SelectedIndexChanged(sender As Object, e As EventArgs)
   If IsNumeric(stateDDL.SelecteValue) Then
      FilterCities(stateDDL.SelectedValue) // Fills cityDDL according to state value
   End If
End Sub

person Sérgio Damasceno    schedule 04.05.2021    source источник


Ответы (1)


Если можно, отключите автозаполнение для всей страницы. Используйте следующее в событии Page_Load родительской страницы. Имя по умолчанию в WebForms - form1. Просто измените form1 на то, что ваша страница использует в качестве идентификатора для тега идентификатора.

C # form1.Attributes.Add (автозаполнение, выкл.);

VB.NET form1.Attributes.Add (автозаполнение, выкл.)

person moto_geek    schedule 23.05.2021