CustomValidator.OnServerValidate,验证不通过时通过UpdatePanel实时显示错误信息,但是提交按钮依旧会触发,如何解决这个问题
时间: 2024-03-10 20:49:51 浏览: 125
您可以在 CustomValidator 的 OnServerValidate 方法中,设置 args.IsValid 属性为 false,表示验证不通过。同时,在页面中,您可以使用 JavaScript 的方式来控制提交按钮是否可用,如果验证不通过,则将提交按钮禁用,如果验证通过,则将提交按钮启用。
以下是一个示例代码,供您参考:
```c#
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
// 在这里进行验证
if (验证不通过)
{
args.IsValid = false;
UpdatePanel1.Update();
ScriptManager.RegisterStartupScript(this, this.GetType(), "disableButton", "$('#submitButton').attr('disabled', true);", true);
}
else
{
args.IsValid = true;
UpdatePanel1.Update();
ScriptManager.RegisterStartupScript(this, this.GetType(), "enableButton", "$('#submitButton').attr('disabled', false);", true);
}
}
```
在上面的代码中,我们假设您的提交按钮的 ID 为 submitButton。在验证不通过时,我们先通过 UpdatePanel1.Update() 方法,实时更新错误信息。然后,我们使用 ScriptManager.RegisterStartupScript 方法,向页面中注册一个 JavaScript 脚本,该脚本会将提交按钮禁用。类似地,在验证通过时,我们将提交按钮启用。
希望这个解决方案能够帮助到您。
阅读全文