Mik*_*yev 11 c# asp.net customvalidator
我CustomValidator在表格上写了一个.我没有设置它的ControlToValidate财产.在它的ServerValidate事件中,我写了以下内容:
protected void CustomValidator1_ServerValidate(object source,
ServerValidateEventArgs args)
{
args.IsValid = false;
}
Run Code Online (Sandbox Code Playgroud)
我给这个方法设了一个断点,但似乎从来没有达到这一点.但如果我在另一种形式上这样做,它就像一个魅力.
ValidationGroup两个按钮和属性CustomValidator是相同的CustomValidator,仍然无法正常工作.似乎有形式的东西.我只是CustomValidator在表单上添加一个并且除了设置其ServerValidate事件方法之外不要触及它的任何属性.
编辑:这是aspx部分:
<asp:CustomValidator ID="CustomValidator2" runat="server"
ErrorMessage="This is a test"
onservervalidate="CustomValidator1_ServerValidate"
ValidationGroup="PA"></asp:CustomValidator>
<asp:Button ID="btnPensionersOK" runat="server" Text="OK" Width="75px"
onclick="Button1_Click" ValidationGroup="PA" />
Run Code Online (Sandbox Code Playgroud)
Tim*_*ter 24
尝试通过以下方式强制在按钮单击处理程序中进行验证Page.Validate:
protected void Button1_Click(Object sender, EventArgs e)
{
Page.Validate();
if(Page.IsValid)
{
// servervalidate should have been called
}
}
Run Code Online (Sandbox Code Playgroud)
编辑(来自评论):
如果您希望customvalidator验证控件中是否未输入/选择任何内容,则需要设置ValidateEmptyText为true.您也可能想让CustomValidator替换RequiredFieldValidators.
我假设aspx上的验证器顺序决定了如果先前的Validator已经发出,是否调用了customvalidator的severvalidate Page.IsValid=false.或者ASP.NET非常聪明,它假设SeverValidate比简单的文本空检查更昂贵.