【发布时间】:2016-03-23 16:45:20
【问题描述】:
我使用 Telerik AJAX 控件创建了服务器创建的表单,并带有一个提交按钮(无点击事件)。我的表单使用的验证器可以正常工作,除非它们在字段验证错误后发生在下一篇文章中。
如果我将电子邮件字段设为空,代码逻辑会捕获并返回错误。再次提交,电子邮件必填字段验证器将在代码之前捕获错误。现在输入有效数据并提交,最后一个空字段验证器错误再次出现。再次提交好的数据,它就会更新。
另外,如果我产生自己的验证器错误,那么验证器可以正常工作。我有所需复选框的验证器代码。如果发生遗漏支票,我会致电
ValidatorError.Display(Page, message);
导致后续
Page.Validate(FormEntryBase.VALIDATION_GROUP);
正确验证当前提交中的必填字段。
protected void Page_Load(object sender, EventArgs e) {
localValidationError = theForm.CustomValidateForm(Request.Form);
if (localValidationError) {
validateErrorList = form.validateErrorList;
// get local valiation error put into validation summary error list
if (validateErrorList != null) {
foreach (string message in validateErrorList) {
ValidatorError.Display(Page, message);
}
}
}
Page.Validate(FormEntryBase.VALIDATION_GROUP);
if (!Page.IsValid ) {
return;
}
代码未捕获的验证器错误在初始提交时未捕获,这会导致错误数据进入。
我有另一个使用 click 方法的 Web 表单,并且只使用 Page.IsValid 工作正常。
非常奇怪的行为,可能是某种生命周期问题。
【问题讨论】:
-
这是一个帖子,而不是 Ajax 调用。
标签: c# asp.net validation telerik