我有以下代码RequiredFieldValidator.该EnableClientScript属性在验证控件中设置为"false".我也在浏览器中禁用了脚本.
我没有Page.IsValid在后面的代码中使用.不过,当我在文本框中提交没有任何价值时,我会得到error message.
根据@Dai的评论,我发现这可能是一个问题,如果有任何代码Page_Load在a中执行postback.不会抛出任何验证错误.
(但是,对于按钮单击处理程序,无需检查Page.IsValid)
if (Page.IsPostBack)
{
string value = txtEmpName.Text;
txtEmpName.Text = value + "Appended";
}
Run Code Online (Sandbox Code Playgroud)
题
Page_Load?Page.IsValid?Page.IsValid;但是说明了什么是强制性使用场景Page.IsValid更新1
Page.IsValid只有在之后Page.Validate()隐式调用的run方法之后才能访问Page_Load.如果您将所有逻辑保存在Page_Load事件处理程序中(非常不鼓励!),请Page.Validate()在检查之前调用Page.IsValid.
注意:建议不要保留所有逻辑Page_Load.如果按钮单击事件发生了某些事情,请将其移动到按钮单击事件处理程序.如果在下拉事件中发生某些事情,请将其移至下拉选定的项目更改事件处理程序.
更新2
看起来,我们需要添加If(Page.IsValid)的button click,如果我们使用的是也Custom Validator与服务器端验证.请参阅CustomValidator不能正常工作.
注意:此处存在客户端验证问题:是否使用Page_IsValid或Page_ClientValidate()(对于客户端事件)
MARKUP …