我正在尝试使用关键字“OnServerValidate”
来使用CustomValidator以下是我在.aspx文件中设置的地方:
<div class="label">
<div><label for="parentemail1">Email Address</label></div>
<div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox></div>
<asp:CustomValidator id="ParentEmail1Required"
ControlToValidate="parentemail1"
Display="Dynamic"
ErrorMessage="Required"
ValidateEmptyText="true"
OnServerValidate="ServerValidator"
runat="server"/>
</div>
这里是OnServerValidate的C#代码隐藏方法:
protected void ServerValidator(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}
我是否遗漏了某些内容,提交表单时是否应该触发CustomValidator? 我已经阅读了很多帖子,甚至尝试使用相同控件上的RequiredFieldValidator,但没有运气。我有这个使用ClientValidationFunction,但我想访问代码后面的属性而不是DOM。
非常感谢任何帮助。
答案 0 :(得分:4)
试试这个
protected void ServerValidator(object source, ServerValidateEventArgs args)
{
if(args.IsValid == false)
return;
Response.Redirect("NextPage.aspx");// It will not fire if page is not valid.
}
答案 1 :(得分:0)
好吧,参数args没有发送到服务器,这就是你没有得到服务器消息的原因。添加按钮就可以做到这一点。
将代码更改为
<div>
<div class="label">
<div><label for="parentemail1">Email Address</label></div>
<div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox>
<br />
<asp:Button ID="btnSendData" runat="server" Text="Send Data" />
</div>
<asp:CustomValidator id="ParentEmail1Required"
ControlToValidate="parentemail1"
Display="Dynamic"
ErrorMessage="Required"
ValidateEmptyText="true"
OnServerValidate="ServerValidator"
runat="server" SetFocusOnError="True"/>
</div>
</div>