[英]ASP.NET - CustomValidator not working after postback
I have a simple case. 我有一个简单的案例。
A custom validator in page Default.aspx 页面Default.aspx中的自定义验证器
<asp:UpdatePanel ID="UplTab1" runat="server" >
<ContentTemplate>
<span>
<asp:TextBox ID="MyTextBox" runat="server" Width="400px"></asp:TextBox>
<asp:CustomValidator Display="Dynamic" ID="MyValidator" runat="server" ErrorMessage="Mon message" ControlToValidate="MyTextBox" OnServerValidate="MyValidator_OnServerValidate" ValidationGroup="MyGroup1"></asp:CustomValidator>
</span>
<span>
<asp:Button ID="BtnSave" runat="server" Text="Save" ValidationGroup="MyGroup1" OnClick="BtnSave_OnClick"></asp:Button>
</span>
</ContentTemplate>
</asp:UpdatePanel>
Default.aspx.cs Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
}
protected void MyValidator_OnServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = MyValidationFunction();
}
When I try to validate my textbox control, no problem it works, my function "MyValidator_OnServerValidate" is fired. 当我尝试验证文本框控件时,它没有问题,我的函数“ MyValidator_OnServerValidate”被触发。 Then I try to re-submit my form again with same button with a different value in my textbox, but this time my custom validator doesn't work anymore.
然后,我尝试使用文本框中具有不同值的相同按钮再次重新提交表单,但这一次我的自定义验证器不再起作用。
My question is why this behavior? 我的问题是为什么这种行为?
I think it's the postback behavior because if I refresh my page, the custom validator works. 我认为这是回发行为,因为如果刷新页面,则自定义验证程序将起作用。
I had exactly the same symptoms. 我有完全相同的症状。 CustomValidator and UpdatePanel acts funny when you have javaScript errors.
当您遇到javaScript错误时,CustomValidator和UpdatePanel表现得很滑稽。 It may be some innocent javaScript error but it will stop Ajax request to complete.
可能是一些无辜的javaScript错误,但它将停止Ajax请求完成。 To test that check whether your ajax postback end request is fired correctly.
要测试以检查您的ajax回发结束请求是否被正确触发。
$(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});
function EndRequestHandler(sender, args) {
alert('Postback!');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.