Я динамически создаю элементы управления проверкой и добавляю их на панель обновлений. Однако проверка на стороне клиента никогда не запускается.
Вот файл aspx:
<div>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</ContentTemplate>
<Triggers >
<asp:AsyncPostBackTrigger ControlID ="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="true"/>
</div>
Вот код:
Dim Survey As New Survey
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Survey.RenderPage(PlaceHolder1)
End Sub
Вот класс, который создает элемент управления проверкой:
Public Class Survey
Public Sub RenderPage(ByVal PlaceHolder As PlaceHolder)
Dim textbox As New TextBox
textbox.ID = "testing"
PlaceHolder.Controls.Add(textbox)
Dim val As New RequiredFieldValidator
val.ControlToValidate = textbox.ID
val.Text = "required"
val.EnableClientScript = True
PlaceHolder.Controls.Add(val)
End Sub
End Class
Когда вы нажимаете следующее, проверка на стороне клиента никогда не запускается. Что действительно странно, так это то, что когда вы оборачиваете кнопку внутри другой панели обновлений, проверка запускается (в IE и Firefox, но не в Chrome или Safari).
У кого-нибудь есть идеи, что происходит? Я знаю, что первые версии Asp.net AJAX не поддерживали элементы управления проверкой, но с моей стороны все в порядке.