我正在动态创建验证控件并将其添加到更新面板。但是,客户端验证永远不会触发。
这是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的第一个版本不支持验证控件,但一切都是最新的。
答案 0 :(得分:0)
我看到有2个问题