我是ASP.NET的初学者,只是有关页面生命周期的回发事件处理程序和Validate方法的问题。根据Microsoft文档所说:
如果请求是回发,则调用控制事件处理程序。此后,将调用所有验证器控件的Validate方法,该方法将设置单个验证器控件和页面的IsValid属性。
这意味着将在所有验证器的Validate方法之前调用控件事件处理程序。
但是我看到了这样的代码:
protected void cmdOK_Click(object sender, EventArgs e)
{
// Abort the event if the page isn't valid.
if (!Page.IsValid) return;
lblMessage.Text = "cmdOK_Click event handler executed.";
}
其中cmdOK是Button的ID,lblMessage是Label的ID,并且有RangeValidator来确保用户只能输入1到10之间的整数。
我不明白的是:由于将首先调用按钮的click事件处理程序,所以有什么意义
if (!Page.IsValid)
不是尚未调用RangeValidator的Validate方法,因此尚未设置Page的IsValid属性吗?