我是ASP.NET的初学者,只是自定义验证的一个问题,我们知道它可以这样工作:
protected void customValidation_ServerValidate(Object source, ServerValidateEventArgs e)
{
if(e.Value...)
{
...
} else
{
e.IsValid = false;
}
} //customValidation is the id of the custom validation control
但是e.isValid
的值如何转移到验证的IsValid属性?为什么我们必须使用ServerValidateEventArgs而不是像这样编码?
...
} else
{
customValidation.IsValid = false;
}
这种方法不是更明智吗?将验证控件的isValid设置为false?为什么通过ServerValidateEventArgs实例?
答案 0 :(得分:1)
假设您有几个使用相同自定义验证的控件。您只想指出那些无效的控件。这就是ServerValidateEventArgs
进入的地方。
这将用于指示页面上哪些控件未通过验证。
E.G。
ASPX
<asp:TextBox runat="server" ID="txtCustomDate" />
<asp:CustomValidator runat="server" OnServerValidate="cstvDate_ServerValidate"
ControlToValidate="txtCustomDate" ID="ctValDate1" ></asp:CustomValidator>
<asp:TextBox runat="server" ID="txtCustomDate2" />
<!-- Same Logic for validation -->
<asp:CustomValidator runat="server" OnServerValidate="cstvDate_ServerValidate"
ControlToValidate="txtCustomDate2" ID="ctValDate2" ></asp:CustomValidator>
背后的代码
protected void customValidation_ServerValidate(Object source, ServerValidateEventArgs e)
{
if(e.Value...)
{
...
} else
{
e.IsValid = false;
}
}
验证方法由OnServerValidate
属性标识。验证控件通过source
参数传递有关自身的信息,并通过e
参数传递验证事件。
有关更多信息,请参见: