У меня есть веб-форма asp.net со статическим содержимым (макет, поля и т. Д.), Которая создает набор (изображений) кнопок в коде позади. У меня есть обязательные поля валидаторы и пользовательские валидаторы на моем статическом контенте. Несмотря на то, что я устанавливаю CausesValidation на свои новые кнопки, при нажатии страницы страница не выводится обратно из-за проблем с проверкой клиента.CausesValidation = False, но проверка на стороне клиента все еще происходит (элементы управления, сгенерированные в коде позади)
Кнопки создаются как часть события нажатия кнопки sepearte (т. Е. Не как часть события загрузки страницы).
Private Sub CreateButtons_Click(sender As Object, e As EventArgs)
Dim Btn As New ImageButton()
Btn.ID = "Something"
Btn.ImageUrl = "/Images/Something.png"
Btn.CausesValidation = False
AddHandler Btn.Click, AddressOf Btn_Click
ControlToAddTo.Controls.Add(Btn)
End Sub
Private Sub Btn_Click(sender As Object, e As EventArgs)
'Do something
End Sub
я мог отключить проверку клиента, чтобы решить эту проблему, но я не хочу потерять эту функциональность, предотвращающую ненужные обращения к серверу для проверки. Я попытался создать кнопки в событии onload на странице, и они работают нормально, поэтому я предполагаю, что это часть жизненного цикла страницы, проверка клиента инициируется после загрузки, но до того, как будут запущены какие-либо события элемента.
Каков наилучший способ получить CausesValidation = false, чтобы на самом деле работать ...?
Редактировать: Пример другого контента Aspx на странице (полей и валидаторов):
Date of Birth:
<asp:RequiredFieldValidator ID="RFV_DOB" runat="server" ControlToValidate="DOB" Text=" *" ErrorMessage="Date of Birth is a required field" CssClass="Validation" ValidationGroup="Main" />
<asp:CompareValidator ID="CV_DOB" runat="server" ControlToValidate="DOB" Operator="DataTypeCheck" Type="Date" Text=" *" ErrorMessage="DOB must be enterred in date format" CssClass="Validation" ValidationGroup="Main" />
<asp:TextBox ID="DOB" runat="server" CssClass="ST_I" MaxLength="10" />
Gender:
<asp:RequiredFieldValidator ID="RFV_Gender" runat="server" ControlToValidate="Gender" Text=" *" ErrorMessage="Gender is a required field" CssClass="Validation" ValidationGroup="Main" />
<asp:DropDownList ID="Gender" runat="server" CssClass="ST_I">
<asp:ListItem Selected="True" />
<asp:ListItem Text="Female" Value="F" />
<asp:ListItem Text="Male" Value="M" />
<asp:ListItem Text="Transgender" Value="T" />
<asp:ListItem Text="Other" Value="O" />
</asp:DropDownList>
<asp:Button ID="Send" runat="server" Text="Send Message" style="margin: 20px;" ValidationGroup="Main" />
Вы уверены, что кнопка вызывает подтверждение? Покажите соответствующий aspx, поэтому некоторые валидаторы и элементы управления, которые они проверяют. –